change #28398 accidently made the last branch of an alternation
not restore the paren state after failure backtrack. Fix this by
removing the last-branch-skips-pushing-a-state optimisation.
p4raw-link: @28398 on //depot/perl:
40a824489101168f94fce98aa2824baf40bad402
p4raw-id: //depot/perl@31417
case BRANCH: /* /(...|A|...)/ */
scan = NEXTOPER(scan); /* scan now points to inner node */
- if ((!next || (OP(next) != BRANCH && OP(next) != BRANCHJ))
- && !has_cutgroup)
- {
- /* last branch; skip state push and jump direct to node */
- continue;
- }
ST.lastparen = *PL_reglastparen;
ST.next_branch = next;
REGCP_SET(ST.cp);
.*\z foo\n y - -
^(?:(\d)x)?\d$ 1 y ${\(defined($1)?1:0)} 0
+.*?(?:(\w)|(\w))x abx y $1-$2 b-