On Sat, 31 Dec 2011, ND wrote: > >But it is a strange logic (in my point of view) that > >/(?=(*:x))(q|)/K > >keeps the MARK:x value > >while the > >/(?=(*:x))((*:y)q|)/K > >don't. > >Isn't it? > > > > Perl documentation says: > > "When a match is successful, the $REGMARK variable will be set to the name of > the most recently executed (*MARK:NAME) that was involved in the match." > > It seems that Perl don't follow the documented behaviour and returns erroneous > results in example above. > So I propose to not move this bug into PCRE.
I believe I have fixed this bug with a patch I have just committed. It applies to capturing, non-capturing, and atomic parentheses. However, the handling of MARKs is complicated; I hope I have caught all the cases. The patch did not cause any changes in the existing tests. Philip -- Philip Hazel -- ## List details at https://lists.exim.org/mailman/listinfo/pcre-dev
