On Tue, Aug 13, 2019, at 21:17, Jeff King wrote: > But I think it's actually happening at a level above that. git-grep > supports multiple patterns, which can be joined with --and, --or, --not, > etc. And they can be grouped with parentheses. > > What you're seeing is the argument parser thinking your '(' is part of > the construction of a boolean match formula, and complaining about the > lack of closing ')'. You can use "-e" to make it clear that it's a > pattern (just as you'd need to for a pattern that starts with "-"): > > git grep -F -e '(' > > So I think everything is working as designed, though I admit the > implication was slightly surprising to me (and note that it only happens > with that _specific_ pattern; something like "(foo" would not be matched > by the option parser). > Thanks. That was confusing (and the error message didn't help). I've always assumed the grep is similar to posix grep so it was weird the same syntax work for fgrep but not git-grep -F.