function wrapQuotes(s, defaultStyle, opts) {
    var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '"' : "'";
    return quoteChar + s + quoteChar;
}
RegExp for various RFC 2616 grammar

parameter     = token "=" ( token | quoted-string )
token         = 1*<any CHAR except CTLs or separators>
separators    = "(" | ")" | "<" | ">" | "@"
              | "," | ";" | ":" | "\" | <">
              | "/" | "[" | "]" | "?" | "="
              | "{" | "}" | SP | HT
quoted-string = ( <"> *(qdtext | quoted-pair ) <"> )
qdtext        = <any TEXT except <">>
quoted-pair   = "\" CHAR
CHAR          = <any US-ASCII character (octets 0 - 127)>
TEXT          = <any OCTET except CTLs, but including LWS>
LWS           = [CRLF] 1*( SP | HT )
CRLF          = CR LF
CR            = <US-ASCII CR, carriage return (13)>
LF            = <US-ASCII LF, linefeed (10)>
SP            = <US-ASCII SP, space (32)>
HT            = <US-ASCII HT, horizontal-tab (9)>
CTL           = <any US-ASCII control character (octets 0 - 31) and DEL (127)>
OCTET         = <any 8-bit sequence of data>
@private