--- /home/cpdev/src/classpath/gnu/regexp/RETokenRange.java	2006-01-17 17:32:51.000000000 +0000
+++ gnu/regexp/RETokenRange.java	2005-09-14 21:51:27.000000000 +0000
@@ -43,9 +43,8 @@
 
   RETokenRange(int subIndex, char lo, char hi, boolean ins) {
     super(subIndex);
-    insens = ins;
-    this.lo = lo;
-    this.hi = hi;
+    this.lo = (insens = ins) ? Character.toLowerCase(lo) : lo;
+    this.hi = ins ? Character.toLowerCase(hi) : hi;
   }
 
   int getMinimumLength() {
@@ -55,16 +54,8 @@
     boolean match(CharIndexed input, REMatch mymatch) {
 	char c = input.charAt(mymatch.index);
 	if (c == CharIndexed.OUT_OF_BOUNDS) return false;
-	boolean matches = (c >= lo) && (c <= hi);
-	if (! matches && insens) {
-	  char c1 = Character.toLowerCase(c);
-	  matches = (c1 >= lo) && (c1 <= hi);
-	  if (!matches) {
-	    c1 = Character.toUpperCase(c);
-	    matches = (c1 >= lo) && (c1 <= hi);
-	  }
-	}
-	if (matches) {
+	if (insens) c = Character.toLowerCase(c);
+	if ((c >= lo) && (c <= hi)) {
 	    ++mymatch.index;
 	    return next(input, mymatch);
 	}
