using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var s = "xxx (aaa - bbb CC - dd - ee-FFF) (aaa2 - bbb2 CC2- dd2- ee2-FFF2)";
var pattern = @"\((?<o>(?:(?! - )[^()])+)(?: - (?<o>(?:(?! - )[^()])+)){2,}\)";
var ms = Regex.Matches(s, pattern);
foreach (Match m in ms)
{
Console.WriteLine($"Matched: {m.Value}");
var res = m.Groups["o"].Captures.Cast<Capture>().Select(x => x.Value);
Console.WriteLine(string.Join("; ", res));
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewogICAgCXZhciBzID0gInh4eCAoYWFhIC0gYmJiIENDIC0gZGQgLSBlZS1GRkYpIChhYWEyIC0gYmJiMiBDQzItIGRkMi0gZWUyLUZGRjIpIjsKICAgIAl2YXIgcGF0dGVybiA9IEAiXCgoPzxvPig/Oig/ISAtIClbXigpXSkrKSg/OiAtICg/PG8+KD86KD8hIC0gKVteKCldKSspKXsyLH1cKSI7CiAgICAJdmFyIG1zID0gUmVnZXguTWF0Y2hlcyhzLCBwYXR0ZXJuKTsKICAgICAgICBmb3JlYWNoIChNYXRjaCBtIGluIG1zKSAKICAgICAgICB7CiAgICAgICAgCUNvbnNvbGUuV3JpdGVMaW5lKCQiTWF0Y2hlZDoge20uVmFsdWV9Iik7CiAgICAgICAgCXZhciByZXMgPSBtLkdyb3Vwc1sibyJdLkNhcHR1cmVzLkNhc3Q8Q2FwdHVyZT4oKS5TZWxlY3QoeCA9PiB4LlZhbHVlKTsKICAgICAgICAJQ29uc29sZS5Xcml0ZUxpbmUoc3RyaW5nLkpvaW4oIjsgIiwgcmVzKSk7CiAgICAgICAgfQoJfQp9