start parser in earnest, + tests; smooth out details of AST anchors and char classes