On Sat, 22 Jun 2019, ND via Pcre-dev wrote: > /\A(?:a|(?=b)|.){50}\z/ > abc > 0: abc > > when engine in a strange way decides that it was exactly 50 repetitions.
That is not an unlimited repeat, so there is no special action for matching an empty string. Therefore, (?=b) matches 47 times. A fixed repeat quantifier is exactly the same as writing the group multiple times. That is (xxx){3} is, in effect, (xxx)(xxx)(xxx) [except the group number is the same] so you can see why /\A(?:a|(?=b)|.)(?:a|(?=b)|.)(?:a|(?=b)|.) ...etc ...\z/ matches "abc". > Perl-compatibility is important. So, indeed. If there is no one who can > discuss this issue with Perl-authors or to examine the issue of breaking some > PCRE-compatibility to achieve more logic. I do not think the Perl people would want to make changes, and I have to say that I agree. Philip -- Philip Hazel -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev