ident = [A-Za-z]+ - "pi" - "e" - ...
where the + is the non-zero Kleene closure operator and the - is subtracting out possibilities. Of course, the point from your great interview with Eelco about wanting to compose grammars is valid too, so it feels as if we're being pulled in two directions at once...
That said, you're very right that once you start composing grammars (scannerless or otherwise), bigger challenges start to make themselves known. Parsing is full of fun trade-offs!