On 2019-06-20 15:53, ph10 wrote:
I have updated the doc to use your example, but it can be done easily
with other PCRE2 facilities:
(?|(ab)c|(a))
does the same thing. If "a" is complex, and you do not want to write it
out twice, you could DEFINE it and use a subroutine call.
I don't say that it can't be done at all. I say that it can't be done with
same effectiveness (performance).
In your example "a" trying to match twice if "abc" is not match. With
(*ACCEPT)?? - only once.
You can add performance:
(?|((a)b)c|(\2))
But there is also less performance then with (a(*ACCEPT)??b)c. And much
more unreadable. And have excess capture.
--
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev