fix for:
(Randal L. Schwartz) [Mon, 26 Aug 2002 15:01:36 +0000 (15:01 +0000)]
Subject: [perl #16773] "abc" =~ /(ab)()(c)??/ broken
From: (Randal L. Schwartz) (via RT) <perlbug@perl.org>
Message-Id: <rt-16773-35748.5.13188490159294@bugs6.perl.org>

p4raw-id: //depot/perl@17787

regexec.c
t/op/re_tests

index 5a7ed12..b69fd2b 100644 (file)
--- a/regexec.c
+++ b/regexec.c
@@ -3682,14 +3682,14 @@ S_regmatch(pTHX_ regnode *prog)
                        /* If it could work, try it. */
                        if (c == (UV)c1 || c == (UV)c2)
                        {
-                           TRYPAREN(paren, n, PL_reginput);
+                           TRYPAREN(paren, ln, PL_reginput);
                            REGCP_UNWIND(lastcp);
                        }
                    }
                    /* If it could work, try it. */
                    else if (c1 == -1000)
                    {
-                       TRYPAREN(paren, n, PL_reginput);
+                       TRYPAREN(paren, ln, PL_reginput);
                        REGCP_UNWIND(lastcp);
                    }
                    /* Couldn't or didn't -- move forward. */
index 9c5ddc4..dcd6fdc 100644 (file)
@@ -922,3 +922,4 @@ ab(?i)cd    abCd    y       -       -
 (.*?)(?<=[bc])c        abcd    y       $1      ab
 2(]*)?$\1      2       y       $&      2
 (??{}) x       y       -       -
+a(b)?? abc     y       <$1>    <>      # undef [perl #16773]