using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var text = @"(A) name1, name2, name3, name3 (B) name4, name5, name7 (via name7) ..... (AA) name47, name47 (via name 46) (BB) name48, name49";
var results = Regex.Matches(text, @"(?s)(.*?)(?:\(([A-Z])\2*\)|\z)")
.Cast<Match>()
.Select(x => x.Groups[1].Value)
.Where(z => !string.IsNullOrEmpty(z))
.ToList();
foreach (var s in results)
Console.WriteLine(s);
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciB0ZXh0ID0gQCIoQSkgbmFtZTEsIG5hbWUyLCBuYW1lMywgbmFtZTMgKEIpIG5hbWU0LCBuYW1lNSwgbmFtZTcgKHZpYSBuYW1lNykgLi4uLi4gKEFBKSBuYW1lNDcsIG5hbWU0NyAodmlhIG5hbWUgNDYpIChCQikgbmFtZTQ4LCBuYW1lNDkiOwogICAgCXZhciByZXN1bHRzID0gUmVnZXguTWF0Y2hlcyh0ZXh0LCBAIig/cykoLio/KSg/OlwoKFtBLVpdKVwyKlwpfFx6KSIpCgkJICAgICAgICAuQ2FzdDxNYXRjaD4oKQoJCSAgICAgICAgLlNlbGVjdCh4ID0+IHguR3JvdXBzWzFdLlZhbHVlKQoJCSAgICAgICAgLldoZXJlKHogPT4gIXN0cmluZy5Jc051bGxPckVtcHR5KHopKQoJCSAgICAgICAgLlRvTGlzdCgpOwogICAgICAgIGZvcmVhY2ggKHZhciBzIGluIHJlc3VsdHMpCiAgICAgICAgCUNvbnNvbGUuV3JpdGVMaW5lKHMpOwoJfQp9