return next(input, mymatch);
boolean result = next(input, mymatch); if (result) mymatch.empty = (mymatch.index == origin); return result;
    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);    }