Complete overhaul! Fixes improper evaluation of nested parentheses and negative groups, thanks to a new lexical analysis step separate from expression building