added RegexMatch and RegexGroup to store information about matches

- Regex interface similar to .NET's
- Group captures are stored and returned
- Reviewed tokenizing logic