strings for grammar, regex is useless for recursion