function isSymbol(obj) {
    if (hasShammedSymbols) {
        return obj && typeof obj === 'object' && obj instanceof Symbol;
    }
    if (typeof obj === 'symbol') {
        return true;
    }
    if (!obj || typeof obj !== 'object' || !symToString) {
        return false;
    }
    try {
        symToString.call(obj);
        return true;
    } catch (e) {}
    return false;
}
RegExp for various RFC 6266 grammar

disposition-type = "inline" | "attachment" | disp-ext-type
disp-ext-type    = token
disposition-parm = filename-parm | disp-ext-parm
filename-parm    = "filename" "=" value
                 | "filename*" "=" ext-value
disp-ext-parm    = token "=" value
                 | ext-token "=" ext-value
ext-token        = <the characters in token, followed by "*">
@private