Matcher base implementation
This class is used as:
Optional
Check for match
Check if this specific segment matches, without checking the children
Check if matcher is exhausted (or children)
return the length of the longest branch of the tree
print as a string
Matcher base implementation