Queries are passed to the command line, using the keywords OR and NOT. Grouping is done using [ and ] (these are not reserved by the shell). Two tildes (`~~`) at the beginning of a string denote a glob match on tags. A tilde and a dash (`~-`) denote a glob match on titles. The grammar is implemented as a recursive descent parser. ``` e1 ::= e2 "OR" e1 | e2; e2 ::= e3 e2 | e3; e3 ::= "NOT" e4 | e4; e4 ::= TAG | "[" e1 "]"; ```