Isn't your checking for $2 pointless as the matchtext all ready checks that there are at least 2 tokens.