[pcre-dev] [Bug 1092] OP_RECURSIVE and OP_CLOSE

Top Page
Delete this message
Author: Philip Hazel
Date:  
To: pcre-dev
Old-Topics: [pcre-dev] [Bug 1092] New: OP_RECURSIVE and OP_CLOSE
Subject: [pcre-dev] [Bug 1092] OP_RECURSIVE and OP_CLOSE
------- You are receiving this mail because: -------
You are on the CC list for the bug.

http://bugs.exim.org/show_bug.cgi?id=1092

Philip Hazel <ph10@???> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED





--- Comment #2 from Philip Hazel <ph10@???> 2011-06-12 17:32:35 ---
The problem was not with OP_CLOSE. I checked up on what Perl does, and its
documentation says "Capture buffers contained by the pattern will have the
value as determined by the outermost recursion." I understand this to mean that
everything gets reset after a recursion completes. The problem was with
*ACCEPT. I have now fixed this so that /(?1)(?:(b(*ACCEPT))){0}/ behaves
exactly the same as /(?1)(?:(b)){0}/ (that is, the same pattern without
*ACCEPT).

I think there is a bug in Perl, because for the first of those patterns, it
gives "no match". For the second, it behaves like PCRE.

While doing this, I discovered and fixed a bug when *ACCEPT caused a
recursively called pattern to match an empty string when PCRE_NOTEMPTY was set.


--
Configure bugmail: http://bugs.exim.org/userprefs.cgi?tab=email