stable lexer + parser to allow complex string expressions