using uCalcSoftware; var uc = new uCalc(); var t = uc.NewTransformer(); var Pattern = t.Pattern("< {etc} >"); t.Str("< a b c > d < (e f g) > h < (i) (j k) > l < m n o ( > p) q >"); // Note the difference in the final match Pattern.BracketSensitive = true; // true is the default Console.WriteLine($"BracketSensitive: {Pattern.BracketSensitive}"); Console.WriteLine("----------------------"); t.Find(); Console.WriteLine(t.Matches.Text); Console.WriteLine(""); Pattern.BracketSensitive = false; Console.WriteLine($"BracketSensitive: {Pattern.BracketSensitive}"); Console.WriteLine("-----------------------"); t.Find(); Console.WriteLine(t.Matches.Text); Console.WriteLine(""); t.Str("( a b ( c ) d e )"); // Here parentheses are captured as regular tokens, not bracket pairs var Pattern2a = t.Pattern("( {etc} ("); var Pattern2b = t.Pattern(") {etc} )"); Console.WriteLine("Brackets used as part of pattern"); Console.WriteLine("--------------------------------"); Pattern2a.BracketSensitive = true; Pattern2b.BracketSensitive = true; t.Find(); Console.WriteLine(t.Matches.Text); Console.WriteLine(""); Pattern2a.BracketSensitive = false; Pattern2b.BracketSensitive = false; t.Find(); Console.WriteLine(t.Matches.Text);