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 = "((1+2)*(4+3))";
var pattern = @"(?=(\((?>[^()]+|(?<o>)\(|(?<-o>)\))*(?(o)(?!)|)\)))";
var result = Regex.Matches(str, pattern)
.Cast<Match>()
.Select(x => x.Groups[1].Value);
Console.WriteLine(string.Join("\n", result));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBzdHIgPSAiKCgxKzIpKig0KzMpKSI7CgkJdmFyIHBhdHRlcm4gPSBAIig/PShcKCg/PlteKCldK3woPzxvPilcKHwoPzwtbz4pXCkpKig/KG8pKD8hKXwpXCkpKSI7IAogICAgCXZhciByZXN1bHQgPSBSZWdleC5NYXRjaGVzKHN0ciwgcGF0dGVybikKICAgIAkJLkNhc3Q8TWF0Y2g+KCkKICAgIAkJLlNlbGVjdCh4ID0+IHguR3JvdXBzWzFdLlZhbHVlKTsKICAgICAgIAlDb25zb2xlLldyaXRlTGluZShzdHJpbmcuSm9pbigiXG4iLCByZXN1bHQpKTsKCX0KfQ==