using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var reg = @"\b(?:Create|Set|Delete)\((?>[^()]+|(?<c>)\(|(?<-c>)\))*(?(c)(?!))\)";
var text = "Create(Apple | Banana(Tree) | Mango (Tree) ) | Delete(Guava)|Set(Orange(Tree))";
var result = Regex.Matches(text, reg).Cast<Match>().Select(x => x.Value).ToList();
foreach (var s in result)
Console.WriteLine(s);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciByZWcgPSBAIlxiKD86Q3JlYXRlfFNldHxEZWxldGUpXCgoPz5bXigpXSt8KD88Yz4pXCh8KD88LWM+KVwpKSooPyhjKSg/ISkpXCkiOwogICAgCXZhciB0ZXh0ID0gIkNyZWF0ZShBcHBsZSB8IEJhbmFuYShUcmVlKSB8IE1hbmdvIChUcmVlKSApIHwgRGVsZXRlKEd1YXZhKXxTZXQoT3JhbmdlKFRyZWUpKSI7CiAgICAJdmFyIHJlc3VsdCA9IFJlZ2V4Lk1hdGNoZXModGV4dCwgcmVnKS5DYXN0PE1hdGNoPigpLlNlbGVjdCh4ID0+IHguVmFsdWUpLlRvTGlzdCgpOwogICAgICAgIGZvcmVhY2ggKHZhciBzIGluIHJlc3VsdCkKICAgICAgICAJQ29uc29sZS5Xcml0ZUxpbmUocyk7Cgl9Cn0=