Это MatchNamedGroupCollection
, который позволяет получать по имени, MatchGroupCollection
позволяет получать только по целочисленному индексу.
Так что вам нужно проверить тип группы перед получением совпадения по имени.
Что-то вроде: (m.groups as MatchNamedGroupCollection)["foo"]