private void buildLeftSquarreBracketFrag(Stack<Fragment> fragStack, CharBuffer chars, ParseContext context) {
        context.enterLeftSquarreBracket();

        Fragment newFrag = null;

        Character nc = chars.lookAhead(1);
        if (nc != null && nc == '^') {
            context.setNegateMode(true);
            chars.next();
            newFrag = parseNegateFragment(chars, context);
            context.setNegateMode(false);
        } else {
            newFrag = parseFragment(chars, context);
        }
        mergeAndPush(fragStack, chars, newFrag, context);
    }