diff --git a/src/pcre2_match.c b/src/pcre2_match.c index c550b24d8..9bd070d88 100644 --- a/src/pcre2_match.c +++ b/src/pcre2_match.c @@ -5895,6 +5895,9 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, assert_accept_frame->offset_top * sizeof(PCRE2_SIZE)); Foffset_top = assert_accept_frame->offset_top; Fmark = assert_accept_frame->mark; + mb->end_subject = Lsaved_end_subject; + mb->true_end_subject = mb->end_subject + Ltrue_end_extra; + mb->moptions = Lsaved_moptions; break; } diff --git a/testdata/testinput2 b/testdata/testinput2 index 0cac6a7e4..5537a19e4 100644 --- a/testdata/testinput2 +++ b/testdata/testinput2 @@ -6753,6 +6753,9 @@ a)"xI abxyz efgxyz +/(a)(*scs:(1)a(*ACCEPT))bbb/ + abbb + # Duplicated capture references /(a)(b)(c)(d)(*scs:(4,3,1,2,2,1,3,3,4,4)x)/B diff --git a/testdata/testoutput2 b/testdata/testoutput2 index dd19a8808..89b3d413c 100644 --- a/testdata/testoutput2 +++ b/testdata/testoutput2 @@ -20258,6 +20258,11 @@ No match 2: 3: +/(a)(*scs:(1)a(*ACCEPT))bbb/ + abbb + 0: abbb + 1: a + # Duplicated capture references /(a)(b)(c)(d)(*scs:(4,3,1,2,2,1,3,3,4,4)x)/B