--- ./regexec.c~	Wed Nov 26 12:37:02 1997
+++ ./regexec.c	Fri Dec 19 12:48:10 1997
@@ -1580,8 +1580,10 @@ regmatch(regnode *prog)
 		logical = 0;
 		sw = 1;
 	    }
-	    if (OP(scan) == SUSPEND)
+	    if (OP(scan) == SUSPEND) {
 		locinput = reginput;
+		nextchar = UCHARAT(locinput);
+	    }
 	    /* FALL THROUGH. */
 	case LONGJMP:
 	  do_longjump:
--- ./t/op/re_tests~	Tue Nov 25 06:55:42 1997
+++ ./t/op/re_tests	Fri Dec 19 12:51:28 1997
@@ -430,4 +430,7 @@ $(?<=^(a))	a	y	$1	a
 (?{$a=2})a*aa(?{local$a=$a+1})k*c(?{$b=$a})	yaaxxaaaacd	y	$b	3
 (?{$a=2})(a(?{local$a=$a+1}))*aak*c(?{$b=$a})	yaaxxaaaacd	y	$b	4
 (>a+)ab	aaab	n	-	-
+(?>a+)b	aaab	y	-	-
+((?>a+)b)	aaab	y	$1	aaab
+(?>(a+))b	aaab	y	$1	aaa
 ((?>[^()]+)|\([^()]*\))+	((abc(ade)ufh()()x	y	$&	abc(ade)ufh()()x
