Флаги регулярного выражения

Может кто-нибудь объяснить, что делает флаг «e», или связать меня с чем-то, что делает? Я не мог найти ничего через Google.

Пример:

preg_replace("/a(b?)c/e", "search_foo_term('\$1')", $str); 

e (PREG_REPLACE_EVAL)

Если этот модификатор установлен, preg_replace () выполняет обычную замену обратных ссылок в заменяющей строке, оценивает ее как код PHP и использует результат для замены строки поиска. Одиночные кавычки, двойные кавычки, обратная косая черта () и символы NULL будут экранированы обратными косыми чертами в замещаемых обратных ссылках. Только preg_replace () использует этот модификатор; он игнорируется другими функциями PCRE.

http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php

Поэтому, учитывая этот пример:

 preg_replace("/a(b?)c/e", "search_foo_term('\$1')", $str); 

Заменой для всего матча будет то, что возвращает search_foo_term () при передаче соответствия для b? ,

Флаг e устарел, главным образом по соображениям безопасности. preg_replace_callback этого используйте preg_replace_callback .