using System.Text.RegularExpressions;
using System.Collections.Generic;
public static void Main()
List<string> listOfNonPunctuationCharacters = new List<string>();
for (int i = 0; i < 128; i++)
if (char.IsPunctuation((char)i))
listOfNonPunctuationCharacters.Add(((char)i).ToString());
foreach (string character in listOfNonPunctuationCharacters)
groupName = "group" + character + "name";
Console.WriteLine("groupName: " + groupName);
Regex r = new Regex("123 (?<" + groupName + ">ABC) 123");
Match m = r.Match("123 ABC 123");
Console.WriteLine("Captured group: " + m.Groups[groupName].Value);
Console.WriteLine(e.Message.ToString());