static boolean regionMatches(CharSequence cs, boolean ignoreCase, int thisStart,
            CharSequence substring, int start, int length)    {
        if (cs instanceof String && substring instanceof String) {
            return ((String) cs).regionMatches(ignoreCase, thisStart, (String) substring, start, length);
        } else {
            // TODO: Implement rather than convert to String
            return cs.toString().regionMatches(ignoreCase, thisStart, substring.toString(), start, length);
        }
    }
Green implementation of regionMatches.

@param cs the {@code CharSequence} to be processed
@param ignoreCase whether or not to be case insensitive
@param thisStart the index to start on the {@code cs} CharSequence
@param substring the {@code CharSequence} to be looked for
@param start the index to start on the {@code substring} CharSequence
@param length character length of the region
@return whether the region matched
android/android_framework/base/src/main/java/lang3/CharSequenceUtils.java