Вопрос такого плана. В книге что я читал по регуляркам были примеры на Perl, там была такая фича все что заключалось в круглые скобки в регулярном выражении автоматически сохранялось в переменные $1. $2. $3.... ну типа так: текст: Hello World !!! регулярка: ^([a-z]{1,5})(.*)$ Интерпретатор автоматом создаст переменные $1=Hello $2= World !!! В ПХП что то подобное есть что автоматом найденные совпадения для скобок сохранит куда то ?
В зависимости от задачи и используемой функции возможно либо использовать обратные ссылки, либо так называемые "карманы". Всё, что заключено в круглые скобки ( и ) будет захвачено и "положено в карман", из которого что-то достать можно с помощью обращения $1, $2 и т.д (либо \1, \2). В карман попадают скобки не по уровню вложенности, а по порядку открытия. Пример: PHP: <?php $regex = '/(Colo(u?)r)/is'; if(preg_match($regex, 'I like yellow color', $pocket)) { echo '<pre>' . print_r($pocket, true) . '</pre>'; } Где в $pocket попало то, что в скобках. В preg_replace используются наоборот $1 (и т.д.) в шаблоне замены как обратные ссылки.