public override IEnumerable<Match> MatchAtom(string input) { var boundMatches = _expression.Matches(input); var result = new List<Match>(boundMatches.Count); foreach (var boundMatch in boundMatches) { var match = new Match(this.Name, ""); result.Add(match); foreach (var matchItem in boundMatch) { match.AddMatch(new Match(matchItem.Key, matchItem.Value)); } } return result; }