using System.Text.RegularExpressions;
public static void Main()
Extract("Table($select=1,2,3),Table2($select=1,2)");
Extract("Table1,Table2,Table3($select=asdf)");
Extract("Table1,Table2");
static void Extract(string s)
var pattern = @"(\w+)(\(.*?\))?($|,)";
var matches = Regex.Matches(s, pattern);
Console.WriteLine(string.Join("; ", matches.Select(m => m.Groups[1].Value)));