Count again (8 vs 9). pat2 and pat3 are missing the space in between the two parts.
Update: Additionally, I don't thing it's possible what you are trying to achieve by using match. See How can I match multiple occurrences with a regex in JavaScript similar to PHP's preg_match_all()? and use exec.