в PCRE модификатор «J» позволяет дублировать именованные субшаблоны внутри шаблона регулярного выражения.
J
(PCRE_INFO_JCHANGED) Внутренний параметр (? J) изменяет
локальная опция PCRE_DUPNAMES. Разрешить повторяющиеся имена для подшаблонов.
Но ничего не сказано о том, какой шаблон будет использоваться, когда в регулярном выражении используется дублированный именованный суб-шаблон.
Например:
https://regex101.com/r/wY3wQ7/6
Кажется, что когда есть именованная рекурсия, сопоставление выполняется только с первым именованным подшаблоном. (?P<NAME>pattern1)
и второй (?P<NAME>pattern2)
игнорируется Это правильно? Тогда почему такая функция может быть полезной?
Задача ещё не решена.
Других решений пока нет …