using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
string text = "One word, duel. Limes said bye.";
string pattern = @"\b(?<w>\p{L}+)(?:\P{L}+(?<w>(\p{L})(?<=\1\P{L}+\1)\p{L}*))+\b";
Match result = Regex.Match(text, pattern, RegexOptions.IgnoreCase);
List<string> output = new List<string>();
if (result.Success)
{
foreach (Capture c in result.Groups["w"].Captures)
output.Add(c.Value);
}
Console.WriteLine(string.Join(", ", output));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXN0cmluZyB0ZXh0ID0gIk9uZSB3b3JkLCBkdWVsLiBMaW1lcyBzYWlkIGJ5ZS4iOwogICAgCXN0cmluZyBwYXR0ZXJuID0gQCJcYig/PHc+XHB7TH0rKSg/OlxQe0x9Kyg/PHc+KFxwe0x9KSg/PD1cMVxQe0x9K1wxKVxwe0x9KikpK1xiIjsKICAgIAlNYXRjaCByZXN1bHQgPSBSZWdleC5NYXRjaCh0ZXh0LCBwYXR0ZXJuLCBSZWdleE9wdGlvbnMuSWdub3JlQ2FzZSk7CiAgICAJTGlzdDxzdHJpbmc+IG91dHB1dCA9IG5ldyBMaXN0PHN0cmluZz4oKTsKICAgIAlpZiAocmVzdWx0LlN1Y2Nlc3MpIAogICAgCXsKICAgIAkJZm9yZWFjaCAoQ2FwdHVyZSBjIGluIHJlc3VsdC5Hcm91cHNbInciXS5DYXB0dXJlcykKICAgIAkJCW91dHB1dC5BZGQoYy5WYWx1ZSk7CiAgICAJfQogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHN0cmluZy5Kb2luKCIsICIsIG91dHB1dCkpOwoJfQp9Cg==