Avoids an extra object allocation on each iteration (extra three objects actually, as the Matcher constructor allocates two arrays as well, and then calls reset anyway!).