У меня есть что-то вроде этогоpreg_match_all соответствует массив
$matches = array();
preg_match_all('/(`.+`)(\s+AS\s+`.+`)?/i', '`foo` AS `bar`', $matches);
print_r($matches);
Результатом является
Array
(
[0] => Array
(
[0] => `foo` AS `bar`
)
[1] => Array
(
[0] => `foo` AS `bar`
)
[2] => Array
(
[0] =>
)
)
Таким образом, возникает вопрос, почему у меня нет 'AS `bar`' в $matches[2][0]
? (Если удалить символ «?» От регулярного выражения, я понимаю, но мне нужен "? :))
Вы можете просто добавить 'U' к модификаторам шаблонов (в конце с 'i'), кажется, вы предполагаете, что каждый квантор не является жадным. –