Синтаксис регулярных выражений является достаточно сложным и его изучение требует серьезных усилий. Наилучшим руководством по регулярным выражениям на сегодняшний день является книга Дж. Фридла "Регулярные выражения" , позволяющая, по словам автора, "научиться мыслить регулярными выражениями".
Рассмотрим основные функции для работы с регулярными Perl-выражениями в РНР. В данном разделе в основном представлен только синтаксис, а конкретные примеры использования функций приведены в остальных разделах данной главы и других главах книги.
Эта функция ищет в строке subject соответствие регулярному выражению pattern. Если задан необязательный параметр matches, то результаты поиска помещаются в массив. Элемент $matches[0] будет содержать часть строки, соответствующую вхождению всего шаблона, $matches[i] - часть строки, соответствующей первым круглым скобкам, $matches[2]- вторым и т. д. Необязательный флаг flag может принимать единственное значение PREG_OFFSET_CAPTURE, при указании которого изменяется формат возвращаемого массива ^matches- каждое вхождение возвращается в виде массива, в нулевом элементе которого содержится найденная подстрока, а в первом --смещение. Поиск осуществляется слева направо, с начала строки. Дополнительный параметр offset может быть использован для указания альтернативной начальной позиции для поиска. Функция pregjnatch о возвращает количество найденных соответствий. Это может быть 0 (совпадения не найдены) и 1, поскольку pregjnatch о прекращает свою работу после первого найденного совпадения.