left-factorized alternatives changed to mark syntax, and merged the old
code with the new one.