diff --git a/src/core/peg.c b/src/core/peg.c index cd321726..d8ab0265 100644 --- a/src/core/peg.c +++ b/src/core/peg.c @@ -289,7 +289,10 @@ tail: while (text <= s->text_end) { CapState cs2 = cap_save(s); next_text = peg_rule(s, rule_a, text); - if (next_text) break; + if (next_text) { + if (rule[0] == RULE_TO) cap_load(s, cs2); + break; + } cap_load(s, cs2); text++; }