Parsing function is 50 lines long
You aren't using regular expressions to your advantage.  Capture, don't split.  Capturing helps you analyze the tokens you are interested in.  Splitting just gets you the location of the delimiters.

function fuzzQuery(rawQuery) {
    "use strict";
    //              ( 1 )     (   2   )    (   3   ) (    4    ) (     5    ) (  6   )
    var re = /\s*(?:(NOT)\s+)?([a-z]+:)?(?:("[^"]*")|(\([^)]*\))|(\[[^\]]*\])|([a-z]+))\s*/g;
    var matches;
    var lastIndex = -1;
    while (matches = re.exec(rawQuery)) {
        var relOp      = matches[1],
            qualifier  = matches[2],
            quotedStr  = matches[3],
            parensStr  = matches[4],
            bracketStr = matches[5],
            bareWord   = matches[6];
        lastIndex = re.lastIndex;

        console.log("relOp=" + relOp +
                    ", qualifier=" + qualifier +
                    ", quotedStr=" + quotedStr +
                    ", parensStr=" + parensStr +
                    ", bracketStr=" + bracketStr +
                    ", bareWord=" + bareWord);
    }
    if (lastIndex != rawQuery.length) {
        console.log("Junk=" + rawQuery.substring(lastIndex));
    }
}


Examples:


name:(john doe)

relOp=undefined, qualifier=name:, quotedStr=undefined, parensStr=(john doe), bracketStr=undefined, bareWord=undefined

name:[andy TO charlie]

relOp=undefined, qualifier=name:, quotedStr=undefined, parensStr=undefined, bracketStr=[andy TO charlie], bareWord=undefined

john doe

relOp=undefined, qualifier=undefined, quotedStr=undefined, parensStr=undefined, bracketStr=undefined, bareWord=john
relOp=undefined, qualifier=undefined, quotedStr=undefined, parensStr=undefined, bracketStr=undefined, bareWord=doe

james NOT jane

relOp=undefined, qualifier=undefined, quotedStr=undefined, parensStr=undefined, bracketStr=undefined, bareWord=james
relOp=NOT, qualifier=undefined, quotedStr=undefined, parensStr=undefined, bracketStr=undefined, bareWord=jane

james NOT (james smith)

relOp=undefined, qualifier=undefined, quotedStr=undefined, parensStr=undefined, bracketStr=undefined, bareWord=james
relOp=NOT, qualifier=undefined, quotedStr=undefined, parensStr=(james smith), bracketStr=undefined, bareWord=undefined

james NOT jane smith

relOp=undefined, qualifier=undefined, quotedStr=undefined, parensStr=undefined, bracketStr=undefined, bareWord=james
relOp=NOT, qualifier=undefined, quotedStr=undefined, parensStr=undefined, bracketStr=undefined, bareWord=jane
relOp=undefined, qualifier=undefined, quotedStr=undefined, parensStr=undefined, bracketStr=undefined, bareWord=smith

name:"john doe" australia

relOp=undefined, qualifier=undefined, quotedStr="john doe", parensStr=undefined, bracketStr=undefined, bareWord=undefined
relOp=undefined, qualifier=undefined, quotedStr=undefined, parensStr=undefined, bracketStr=undefined, bareWord=australia