Q: How to parse many characters except few in the parentheses? The best way to parse any character except few, is to use noneOf combinator, 
Unfortunately it doesn't work if I combine it in the following way: 
Combine.parse (Combine.parens <| Combine.many <| Combine.Char.noneOf ['"', '\\']) "()"

Err ((),{ data = "()", input = "", position = 2 },["expected \")\""])
: Result.Result
    (Combine.ParseErr ()) (Combine.ParseOk () (List Char))


A: Your use of noneOf results in that parser consuming all characters including the closing parenthesis. Since the inner portion consumes the closing paren, the Combine.parens parser will not see the closing paren. You need to cause the many <| noneOf ... parser to halt on a closing parenthesis.
Consider adding the closing parenthesis to the list of characters in noneOf:
Combine.parse (Combine.parens <| Combine.many <| Combine.Char.noneOf ['"', '\\', ')']) "()"

