On Sun, 30 Jun 2019, ND via Pcre-dev wrote: > PCRE2 version 10.33 2019-04-16 > /\A(?:.|..)(*THEN)c/ > abc > No match > > > Perl is match "abc". > I suppose "next innermost alternative" is interpreted differently by PCRE and > Perl. > > If so, may be PCRE should go Perl way in this matter?
I think this is a bug in Perl and I will report it as such. The Perl document says, concerning (*THEN): "when backtracked into on failure, it causes the regex engine to try the next alternation in the innermost enclosing group (capturing or otherwise) that has alternations." There is no group enclosing (*THEN) in your pattern. Perls' doc also says this: Note that if this operator is used and NOT inside of an alternation then it acts exactly like the "(*PRUNE)" operator. .. but it doesn't: Perl 5.030000 Regular Expressions /\A(?:.|..)(*THEN)c/ abc 0: abc /\A(?:.|..)(*PRUNE)c/ abc No match Philip -- Philip Hazel -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev