Implement a simple regular expression parser:
Pattern Syntax:
== Character matchers:
== Modifiers (only appear following matchers):
Example:
Pattern: "..+, hello world!\s*"
The parsed form should be an array of tuples which describe the matcher along with any modifiers on that matcher.
General form for parsed input: [(MatcherType, Modifer)]
Example: [(AnyCharacter, ONCE), (AnyCharacter, ONE_OR_MORE), ...]
Example: [(Character('h'), ONCE), (AnyCharacter, ONE_OR_MORE), ...]