DEBUG_EXECUTE_r(PerlIO_printf(Perl_debug_log, "%ld...\n", (long)(check_at - i_strpos)) );
/* set rx_origin to the minimum position where the regex could start
- * matching, given the constraint of the just-matched check substring
+ * matching, given the constraint of the just-matched check substring.
+ * But don't set it lower than previously.
*/
- rx_origin = (check_at - strpos <= prog->check_offset_max)
- ? strpos
- : HOP3c(check_at, -prog->check_offset_max, strpos);
+ if (check_at - rx_origin > prog->check_offset_max)
+ rx_origin = HOP3c(check_at, -prog->check_offset_max, rx_origin);
/* XXX dmq: first branch is for positive lookbehind...
require './test.pl';
}
-plan tests => 715; # Update this when adding/deleting tests.
+plan tests => 716; # Update this when adding/deleting tests.
run_tests() unless caller;
$s=~ /ab.{1,2}x/;
pass("RT#120692 ab.{1,2} mustn't run slowly");
+
+ $s = "-a-bc" x 250_000;
+ $s .= "1a1bc";
+ utf8::upgrade($s);
+ ok($s =~ /\da\d{0,30000}bc/, "\\d{30000}");
+
}
# These are based on looking at the code in regcomp.c