Use a generic list for capsList

The list created for capsList is being copied to an array on every
RegexTree created, and there is no point in that when we only need an
array for Regex.GetGroupNames

This is just a small performance improvement, but one I believe merits the effort. (: