using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text.RegularExpressions; public class Test { public static void Main() { var p = @"""([^""]*)""\s*<([^<>]*)>"; var str = "\"Some name>,\" , \" >\" '"; var matches = Regex.Matches(str, p).Cast().Select(x => new[] { x.Groups[1].Value, x.Groups[2].Value }).ToArray(); foreach (var pair in matches) Console.WriteLine("{0} : {1}", pair[0],pair[1]); } }