PCRE_CASELESS Делает нечувствительным к регистру. Большие (прописные) и маленькие (строчные) буквы в выражении не различаются и считаются одинаковыми.
m
PCRE_MULTILINE Указывает на то, что текст, по которому ведется поиск, должен рассматриваться как состоящий из нескольких строк. По умолчанию механизм регулярных выражений рассматривает текст как одну строку вне зависимости от того, чем она является на самом деле. Соответственно метасимволы "^" и "$" указывают на начало и конец всего текста. Если же этот модификатор указан, то они будут указывать соответственно на начало и конец каждой строки текста.
s
PCRE_DOTALL Если данный модификатор используется, метасимвол "." (точка) в шаблоне соответствует всем символам, включая перевод строк. Без него - всем, за исключением переводов строк. По умолчанию метасимвол "." не включает в свое определение символ перевода строки, т.е. для многострочного текста выражение /.+/ вернет только первую строку, а не весь текст, как ожидается. Указание этого модификатора снимает это ограничение. Класс символов, построенный на отрицании, например [^a], всегда соответствует переводу строки, независимо от наличия этого модификатора.
e
PREG_REPLACE_EVAL Если данный модификатор используется, preg_replace() после выполнения стандартных подстановок в заменяемой строке интерпретирует ее как PHP-код и использует результат для замены искомой строки. Только preg_replace() реагирует на данный модификатор; остальными функциями он игнорируется. Пример PHP преобразует все HTML-теги к верхнему регистру: preg_replace("/(<\/?)(\w+)([^>]*>)/e","'\\1'.strtoupper('\\2').'\\3'",$html_body)
U
PCRE_UNGREEDY Делает все количественные метасимволы "не жадными". Не совместим с Perl. Аналогично простановке "?" после каждого количественного метасимвола.
D
PCRE_DOLLAR_ENDONLY Если данный модификатор используется, метасимвол "$" в шаблоне соответствует только окончанию обрабатываемых данных. Без этого модификатора метасимвол "$" соответствует также позиции перед последним символом, в случае, если им является перевод строки (но не распространяется на любые другие переводы строк). Не совместим с Perl. Данный модификатор игнорируется, если используется модификатор m.
Тут приведены лишь наиболее часто используемые модификаторы регулярных выражений. Еще бывают: A, S, x, X, J, u.
Опережающие, ретроспективные проверки и негативный прогноз (Lookahead Assertion):
Заглядывание вперед: foo(?=bar) - совпадет с foo только перед bar, при этом сама строка bar не войдет в найденный результат.
Отрицательное заглядывание вперед: foo(?!bar) - совпадет с foo, только, если после этой строки не следует bar.
Ретроспективная проверка: (?<=foo)bar - совпадет с bar только после foo, при этом сама строка foo не войдет в найденный результат.
Отрицательное заглядывание назад: foo(?<!bar) - совпадет с bar, только если перед этой строкой нет foo.