better parsing; but lexicals don't get captured properly (Parse::Keyword issue #5)