if (input.charAt(mymatch.index+i-b) != input.charAt(i)) {
char c1 = input.charAt(mymatch.index+i-b); char c2 = input.charAt(i); if (c1 != c2) { if (insens) { if (c1 != Character.toLowerCase(c2) && c1 != Character.toUpperCase(c2)) {
    boolean match(CharIndexed input, REMatch mymatch) {	int b,e;	b = mymatch.start[num];	e = mymatch.end[num];	if ((b==-1)||(e==-1)) return false; // this shouldn't happen, but...	for (int i=b; i<e; i++) {	    if (input.charAt(mymatch.index+i-b) != input.charAt(i)) {		return false;	    }	}	mymatch.index += e-b;	return next(input, mymatch);    }