using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var pattern = @"\bisnull\((?>[^][()]|(?<x>\[[^][]*])|(?<o>)\(|(?<-o>)\))*(?(o)(?!))\)";
var text = "isnull(Num([abc]), [a], [b]) + sum([d])";
var result = Regex.Match(text, pattern, RegexOptions.IgnoreCase)?.Groups["x"].Captures;
Console.WriteLine(string.Join(", ", result));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgCXZhciBwYXR0ZXJuID0gQCJcYmlzbnVsbFwoKD8+W15dWygpXXwoPzx4PlxbW15dW10qXSl8KD88bz4pXCh8KD88LW8+KVwpKSooPyhvKSg/ISkpXCkiOwogICAgCXZhciB0ZXh0ID0gImlzbnVsbChOdW0oW2FiY10pLCBbYV0sIFtiXSkgKyBzdW0oW2RdKSI7CiAgICAJdmFyIHJlc3VsdCA9IFJlZ2V4Lk1hdGNoKHRleHQsIHBhdHRlcm4sIFJlZ2V4T3B0aW9ucy5JZ25vcmVDYXNlKT8uR3JvdXBzWyJ4Il0uQ2FwdHVyZXM7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkpvaW4oIiwgIiwgcmVzdWx0KSk7Cgl9Cn0=