Учитывая следующее регулярное выражение PCRE:
(?(DEFINE)(?'pat'a|ab))^(?P>pat)b$
Я ожидал, что он будет соответствовать строкам ab
и abb
. Однако он соответствует только ab
(а не abb
, см. https://regex101.com/r/F70wge/ 1а>). Кажется, что бэктрекер не заходит в именованный подшаблон.
При встраивании шаблона следующим образом:
^(?:a|ab)b$
Обе строки ab
и abb
совпадают, как и ожидалось.
Можно ли изменить регулярное выражение выше (с именованным шаблоном), чтобы обе строки совпадали без встраивания шаблона?