+@@ -479,6 +479,10 @@ sopno stopst;
+ sep = ssp;
+ ssp = oldssp;
+ }
++ else if (tail==rest) {
++ /* Fix for test expr 105 */
++ ssp = oldssp;
++ }
+ assert(sep == rest); /* must exhaust substring */
+ assert(slow(m, ssp, sep, ssub, esub) == rest);
+ dp = dissect(m, ssp, sep, ssub, esub);
+@@ -531,6 +535,14 @@ sopno stopst;
+ i = OPND(m->g->strip[ss]);
+ assert(0 < i && i <= m->g->nsub);
+ m->pmatch[i].rm_so = sp - m->offp;
++ /* fix for T.regcomp 43: don't remember previous
++ subexpression matches beyond the current one (i) */
++ i++;
++ while (i<= m->g->nsub) {
++ m->pmatch[i].rm_so = -1;
++ m->pmatch[i].rm_eo = -1;
++ i++;
++ }
+ break;
+ case ORPAREN:
+ i = OPND(m->g->strip[ss]);
+@@ -585,14 +597,14 @@ sopno lev; /* PLUS nesting level */