From fe44a5e8ded57786d86db6cd28cbac7ae376fddc Mon Sep 17 00:00:00 2001 From: Ilya Zakharevich Date: Fri, 19 Dec 1997 11:02:50 -0500 Subject: [PATCH] Regexp fix: (?>a+)b doesn't match aaab: Subject: Re: Regexp [PATCH] 5.004_56 (?>...) p4raw-id: //depot/perl@399 --- regexec.c | 4 +++- t/op/re_tests | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/regexec.c b/regexec.c index 7285bea..5fe5e4b 100644 --- a/regexec.c +++ b/regexec.c @@ -1576,8 +1576,10 @@ regmatch(regnode *prog) logical = 0; sw = 1; } - if (OP(scan) == SUSPEND) + if (OP(scan) == SUSPEND) { locinput = reginput; + nextchar = UCHARAT(locinput); + } /* FALL THROUGH. */ case LONGJMP: do_longjump: diff --git a/t/op/re_tests b/t/op/re_tests index 29a6518..b688a16 100644 --- a/t/op/re_tests +++ b/t/op/re_tests @@ -430,4 +430,7 @@ $(?<=^(a)) a y $1 a (?{$a=2})a*aa(?{local$a=$a+1})k*c(?{$b=$a}) yaaxxaaaacd y $b 3 (?{$a=2})(a(?{local$a=$a+1}))*aak*c(?{$b=$a}) yaaxxaaaacd y $b 4 (>a+)ab aaab n - - +(?>a+)b aaab y - - +((?>a+)b) aaab y $1 aaab +(?>(a+))b aaab y $1 aaa ((?>[^()]+)|\([^()]*\))+ ((abc(ade)ufh()()x y $& abc(ade)ufh()()x -- 2.7.4