https://bugs.exim.org/show_bug.cgi?id=2433

            Bug ID: 2433
           Summary: A regression by 1133 commit: A lookbehind after a
                    condition does not match
           Product: PCRE
           Version: N/A
          Hardware: x86
               URL: https://bugzilla.redhat.com/show_bug.cgi?id=1743863
                OS: Linux
            Status: NEW
          Severity: bug
          Priority: medium
         Component: Code
          Assignee: p...@hermes.cam.ac.uk
          Reporter: ppi...@redhat.com
                CC: pcre-dev@exim.org

A Fedora user noticed that this pcre2 commit 1133: 

commit d70442f2c962ca816b8d03504a07e618c271a9fe
Author: ph10 <ph10@6239d852-aaf2-0410-a92c-79f79f948069>
Date:   Tue Jul 16 15:06:21 2019 +0000

    Fix lookbehind within lookahead within lookbehind misbehaviour bug.


    git-svn-id: svn://vcs.exim.org/pcre2/code/trunk@1133
6239d852-aaf2-0410-a92c-79f79f948069

causes Julia test suite to fail. I reduced the test to this:

$ printf '%s\n%s\n' '/^(?<A>a)(?(<A>)b)((?<=b).*)$/' 'abc' | ./pcre2test 
PCRE2 version 10.34-RC1 2019-04-22
/^(?<A>a)(?(<A>)b)((?<=b).*)$/
abc
No match

A commit before works as expected:

$ printf '%s\n%s\n' '/^(?<A>a)(?(<A>)b)((?<=b).*)$/' 'abc' | ./pcre2test 
PCRE2 version 10.34-RC1 2019-04-22
/^(?<A>a)(?(<A>)b)((?<=b).*)$/
abc
 0: abc
 1: a
 2: c

It looks like a lookbehind after a condition is the culprit. Because these
expressions work:

/^(?<A>a)b((?<=b).*)$/
abc
 0: abc
 1: a
 2: c

/^(?<A>a)(?(<A>)b)(.*)$/
abc
 0: abc
 1: a
 2: c

A full expression from the Julia test can bee seen at
<https://bugzilla.redhat.com/show_bug.cgi?id=1743863>.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-- 
## List details at https://lists.exim.org/mailman/listinfo/pcre-dev 

Reply via email to