REMatch matchThis(CharIndexed input, REMatch mymatch) {
   char ch = input.charAt(mymatch.index);
   boolean retval = matchOneChar(ch);
   if (retval) {
     ++mymatch.index;
     return mymatch;
   }
   return null;
 }
 boolean match(CharIndexed input, REMatch mymatch) {
   char c = input.charAt(mymatch.index);
   if (c == CharIndexed.OUT_OF_BOUNDS) return false;
   if (insens) c = Character.toLowerCase(c);
   if ((c >= lo) && (c <= hi)) {
     ++mymatch.index;
     return next(input, mymatch);
   }
   return false;
 }
 int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
   int index = mymatch.index;
   int numRepeats = 0;
   while (true) {
     if (numRepeats >= max) break;
     char ch = input.charAt(index++);
     if (!matchOneChar(ch)) break;
     numRepeats++;
   }
   return numRepeats;
 }