using System; using System.Text.RegularExpressions; using System.IO; public class Test { public static void Main() { var s = "This is a {test} %String%. %Stack% {Overflow}"; var regex = "(?:(?

%)|(?{))(?.*?)(?(p)%|})"; var matches = Regex.Matches(s, regex, RegexOptions.Singleline); foreach (Match match in matches) { Console.WriteLine(match.Groups["v"].Value); } } }