using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { var str = "something, 'foo', something ('bar')"; var result = Regex.Matches(str, @"\([^()]*\)|'([^']*)'") .Cast() .Select(m => m.Groups[1].Value) .ToList(); foreach (var s in result) Console.WriteLine(s); } }