using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string msg= "array1[ array2[array3[1,1],3] , 5+3 ]";
var charSetOccurences = new Regex(@"array\d*\[\s*((?:[^\[\]]|(?<o>\[)|(?<-o>\]))+(?(o)(?!))),\s*((?:[^\[\]]|(?<o>\[)|(?<-o>\]))+(?(o)(?!)))\]");
var charSetMatches = charSetOccurences.Matches(msg);
foreach (Match match in charSetMatches)
{
Console.WriteLine(match.Groups[1].Value);
Console.WriteLine(match.Groups[2].Value);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CnB1YmxpYyBjbGFzcyBUZXN0CnsKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgIHsgICAKICAgICAgICBzdHJpbmcgbXNnPSAiYXJyYXkxWyBhcnJheTJbYXJyYXkzWzEsMV0sM10gLCA1KzMgXSI7CiAgICAgICAgdmFyIGNoYXJTZXRPY2N1cmVuY2VzID0gbmV3IFJlZ2V4KEAiYXJyYXlcZCpcW1xzKigoPzpbXlxbXF1dfCg/PG8+XFspfCg/PC1vPlxdKSkrKD8obykoPyEpKSksXHMqKCg/OlteXFtcXV18KD88bz5cWyl8KD88LW8+XF0pKSsoPyhvKSg/ISkpKVxdIik7CiAgICAgICAgdmFyIGNoYXJTZXRNYXRjaGVzID0gY2hhclNldE9jY3VyZW5jZXMuTWF0Y2hlcyhtc2cpOwogICAgICAgIGZvcmVhY2ggKE1hdGNoIG1hdGNoIGluIGNoYXJTZXRNYXRjaGVzKQogICAgICAgIHsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUobWF0Y2guR3JvdXBzWzFdLlZhbHVlKTsKICAgICAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUobWF0Y2guR3JvdXBzWzJdLlZhbHVlKTsKICAgICAgICB9CiAgICB9Cn0=