[pcre-dev] [Bug 2725] (*SKIP)(*F) within a (?(DEFINE)) does …

Top Page

Reply to this message
Author: admin
Date:  
To: pcre-dev
Subject: [pcre-dev] [Bug 2725] (*SKIP)(*F) within a (?(DEFINE)) does not skip position
https://bugs.exim.org/show_bug.cgi?id=2725

--- Comment #2 from Philip Hazel <Philip.Hazel@???> ---
Thank you for the report and analysis.

It is documented at the end of pcre2pattern.3 that COMMIT, PRUNE, and SKIP are
confined within a subroutine call in PCRE2, and just cause it to fail to match.
I cannot remember why this is so. Subroutine calls appeared in PCRE before they
did in Perl, so it might be that this behaviour dates from then, but it might
also be because Perl has exhibited some conflicting behaviour in the past.
(Perl is constantly changing and there are still some odd things that happen.)

There is a Release Candidate for 10.37 out for testing at the moment, so it is
too late to consider changing this behaviour until after the release is out,
which will happen towards the end of this month. After that, I will do some
experiments with Perl to see how it currently behaves with the above three
verbs, and we will consider what changes could be made to PCRE2 - work would
need to be coordinated in both the interpreter and the JIT compiler.

--
You are receiving this mail because:
You are on the CC list for the bug.