using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text.RegularExpressions;
public class Test
{
public static void Main()
{
var keyword = "A+";
Console.WriteLine("Unambiguous WB: " + Regex.Replace("A+B and A++", $@"(?<!\w){Regex.Escape(keyword)}(?!\w)", "<b>$&</b>"));
keyword = "Hello";
Console.WriteLine("Regular WB: " + Regex.Replace("Hello World! Hello,World!", $@"\b{keyword}\b", "<b>$&</b>"));
Console.WriteLine("Whitespace WB: " + Regex.Replace("Hello, Hello Hello!", $@"(?<!\S){Regex.Escape(keyword)}(?!\S)", "<b>$&</b>"));
keyword = "hello";
Console.WriteLine("Case innsensitive: " + Regex.Replace("Hello, hello World!", Regex.Escape(keyword), "<b>$&</b>", RegexOptions.IgnoreCase));
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLklPOwp1c2luZyBTeXN0ZW0uTGlucTsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwoKcHVibGljIGNsYXNzIFRlc3QKewoJcHVibGljIHN0YXRpYyB2b2lkIE1haW4oKQoJewoJCXZhciBrZXl3b3JkID0gIkErIjsKCQlDb25zb2xlLldyaXRlTGluZSgiVW5hbWJpZ3VvdXMgV0I6ICIgKyBSZWdleC5SZXBsYWNlKCJBK0IgYW5kIEErKyIsICRAIig/PCFcdyl7UmVnZXguRXNjYXBlKGtleXdvcmQpfSg/IVx3KSIsICI8Yj4kJjwvYj4iKSk7CgkJa2V5d29yZCA9ICJIZWxsbyI7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIlJlZ3VsYXIgV0I6ICIgKyBSZWdleC5SZXBsYWNlKCJIZWxsbyBXb3JsZCEgSGVsbG8sV29ybGQhIiwgJEAiXGJ7a2V5d29yZH1cYiIsICI8Yj4kJjwvYj4iKSk7CgkJQ29uc29sZS5Xcml0ZUxpbmUoIldoaXRlc3BhY2UgV0I6ICIgKyBSZWdleC5SZXBsYWNlKCJIZWxsbywgSGVsbG8gSGVsbG8hIiwgJEAiKD88IVxTKXtSZWdleC5Fc2NhcGUoa2V5d29yZCl9KD8hXFMpIiwgIjxiPiQmPC9iPiIpKTsKCQlrZXl3b3JkID0gImhlbGxvIjsKCQlDb25zb2xlLldyaXRlTGluZSgiQ2FzZSBpbm5zZW5zaXRpdmU6ICIgKyBSZWdleC5SZXBsYWNlKCJIZWxsbywgaGVsbG8gV29ybGQhIiwgUmVnZXguRXNjYXBlKGtleXdvcmQpLCAiPGI+JCY8L2I+IiwgUmVnZXhPcHRpb25zLklnbm9yZUNhc2UpKTsKCX0KfQ==