я мог сопоставить содержимое между тегами tr с этим регулярным выражением:
<tr\s+class='test'>((?!</tr>).)*</tr>
но если я помещу звездчатые квантификаторы в круглые скобки рядом с метасимволами точки, они будут соответствовать только всему шаблону с пустой группой захвата.
$string = "<tr class='test'>
<td>test1</td>
</tr>
<div class='ignored' >text text</div>
<tr class='test'>
<td>test2</td>
</tr>";
preg_match_all("|<tr\s+class='test'>((?!</tr>).*)</tr>|si",$string,$matches);
print_r($matches);
Я знаю, что такое поиск, но не совсем уверен, в чем именно заключается разница. надеюсь, что кто-то сможет пролить свет на это. Спасибо!