static private boolean isInsideCharClass(String s, int pos) {

        boolean openBracketFound = false;
        boolean closeBracketFound = false;

        // find last non-escaped open-bracket
        String s2 = s.substring(0, pos);
        int posOpen = pos;
        while ((posOpen = s2.lastIndexOf('[', posOpen - 1)) != -1) {
            if (!isEscapedChar(s2, posOpen)) {
                openBracketFound = true;
                break;
            }
        }

        if (openBracketFound) {
            // search remainder of string (after open-bracket) for a close-bracket
            String s3 = s.substring(posOpen, pos);
            int posClose = -1;
            while ((posClose = s3.indexOf(']', posClose + 1)) != -1) {
                if (!isEscapedChar(s3, posClose)) {
                    closeBracketFound = true;
                    break;
                }
            }
        }

        return openBracketFound && !closeBracketFound;
    }
static private boolean isInsideCharClass(String s, int pos) {

        boolean openBracketFound = false;
        boolean closeBracketFound = false;

        
        String s2 = s.substring(0, pos);
        int posOpen = pos;
        while ((posOpen = s2.lastIndexOf('[', posOpen - 1)) != -1) {
            if (!isEscapedChar(s2, posOpen)) {
                openBracketFound = true;
                break;
            }
        }

        if (openBracketFound) {
            
            String s3 = s.substring(posOpen, pos);
            int posClose = -1;
            while ((posClose = s3.indexOf(']', posClose + 1)) != -1) {
                if (!isEscapedChar(s3, posClose)) {
                    closeBracketFound = true;
                    break;
                }
            }
        }

        return openBracketFound && !closeBracketFound;
    }
static private boolean isInsideCharClass ( String s , int pos ) { boolean openBracketFound = false ; boolean closeBracketFound = false ; // find last non-escaped open-bracket String s2 = s . substring ( 0 , pos ) ; int posOpen = pos ; while ( ( posOpen = s2 . lastIndexOf ( ' ' , posOpen - 1 ) ) != - 1 ) { if ( ! isEscapedChar ( s2 , posOpen ) ) { openBracketFound = true ; break ; } } if ( openBracketFound ) { // search remainder of string (after open-bracket) for a close-bracket String s3 = s . substring ( posOpen , pos ) ; int posClose = - 1 ; while ( ( posClose = s3 . indexOf ( ' ' , posClose + 1 ) ) != - 1 ) { if ( ! isEscapedChar ( s3 , posClose ) ) { closeBracketFound = true ; break ; } } } return openBracketFound && ! closeBracketFound ; }
Determines if a string's character is within a regex character class

@param s string to evaluate
@param pos the position of the character to evaluate
@return true if the character is inside a character class; otherwise false
Determines if a string s character is within a regex character class