) между пробелом и концом строки.

отрим следующий пример:

$payload = '
ababaaabbb =%=
ababaaabbb =%=
ababaa     =%=
';

$pattern = '/^[ab]+\s*(?:=%=)?$/m';
preg_match_all($pattern, $payload, $matches);
var_dump($matches);

Ожидаемый и фактический результат матча:

"ababaaabbb =%="
"ababaaabbb =%="
"ababaa     =%="

Но если$payload изменился на

$payload = '
ababaaabbb =%=
ababaaabbb =%=
ababaa     =%'; // "=" sign removed at EOL

фактический результат

"ababaaabbb =%="
"ababaaabbb =%="

но ожидается

"ababaaabbb =%="
"ababaaabbb =%="
"ababaa     "

Почему это случилось? группа(?:=%=)? необязательно из-за? и последняя строка в полезной нагрузке также должна присутствовать в результатах поиска.

Ответы на вопрос(3)

Ваш ответ на вопрос