Classes to represent many of the pattern types the matcher looks for
Matcher now supports repeating patterns.