completely refactor to using right-to-left matching & several bug-fixes