fixes types of groups and all to include (Option String) in vectors.

Groups defined in a pattern that are part of an alternation may not capture anything and will result in a nil value being captured. The types need to reflect this