*** src/java/org/apache/regexp/RECompiler.java Mon Oct 6 07:03:10 2003 --- src/java/org/apache/regexp/RECompiler.java.patched Mon Oct 6 07:00:22 2003 *************** *** 1066,1071 **** --- 1066,1083 ---- { if (bracketMin[i] > 0 || bracketOpt[i] != 0) { // Rewind stream and run it through again - more matchers coming + for (int j = 0; j < brackets; j++) { + if (j != i && bracketStart[j] < idx + && bracketStart[j] >= idxBeforeTerminal) + { + brackets--; + bracketStart[j] = bracketStart[brackets]; + bracketEnd[j] = bracketEnd[brackets]; + bracketMin[j] = bracketMin[brackets]; + bracketOpt[j] = bracketOpt[brackets]; + } + } + idx = idxBeforeTerminal; } else { // Bug #1030: No optinal matches - no need to rewind --- docs/RETest.txt.orig 2003-10-06 07:27:46.000000000 +0400 +++ docs/RETest.txt 2003-10-06 07:26:38.000000000 +0400 @@ -1303,3 +1303,12 @@ UVW YES V + +#216 +UUID=(\w{8}\.){3}\w{8} +UUID=3babc217.0007d4e1.74726163.006e616d +YES +UUID=3babc217.0007d4e1.74726163.006e616d +3babc217. +0007d4e1. +74726163.