using System;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
String input = @"[[Parent1 [[Child 1]],[[Child 2]],[[Child 3]]]] [[Parent2 [[Child 1]],[[Child 2]]]]";
Regex rgx = new Regex(@"(?<=^|]\s)\[\[(?<item>\S+)|(?<children>\[\[(?!Parent).*?\]\])(?=]]\s|]]$)");
foreach (Match m in rgx.Matches(input))
{
Console.WriteLine(m.Groups[1].Value);
Console.WriteLine(m.Groups[2].Value);
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CiAKcHVibGljIGNsYXNzIFRlc3QKewpwdWJsaWMgc3RhdGljIHZvaWQgTWFpbigpCnsKIFN0cmluZyBpbnB1dCA9IEAiW1tQYXJlbnQxIFtbQ2hpbGQgMV1dLFtbQ2hpbGQgMl1dLFtbQ2hpbGQgM11dXV0gW1tQYXJlbnQyIFtbQ2hpbGQgMV1dLFtbQ2hpbGQgMl1dXV0iOwogUmVnZXggcmd4ID0gbmV3IFJlZ2V4KEAiKD88PV58XVxzKVxbXFsoPzxpdGVtPlxTKyl8KD88Y2hpbGRyZW4+XFtcWyg/IVBhcmVudCkuKj9cXVxdKSg/PV1dXHN8XV0kKSIpOwogZm9yZWFjaCAoTWF0Y2ggbSBpbiByZ3guTWF0Y2hlcyhpbnB1dCkpCnsKQ29uc29sZS5Xcml0ZUxpbmUobS5Hcm91cHNbMV0uVmFsdWUpOwpDb25zb2xlLldyaXRlTGluZShtLkdyb3Vwc1syXS5WYWx1ZSk7Cn0KfQp9