using System.Text.RegularExpressions;
public static void Main()
new { Input="abcdef", Search="abc", Replacement="xyz", Expected="xyzdef" },
new { Input="ABCdef", Search="abc", Replacement="xyz", Expected="xyzdef" },
new { Input="A*BCdef", Search="a*bc", Replacement="xyz", Expected="xyzdef" },
new { Input="abcdef", Search="abc", Replacement="x*yz", Expected="x*yzdef" },
new { Input="abcdef", Search="abc", Replacement="$", Expected="$zdef" },
foreach(var test in tests){
var result = ReplaceCaseInsensitive(test.Input, test.Search, test.Replacement);
"Success: {0}, Actual: {1}, {2}",
private static string ReplaceCaseInsensitive(string input, string search, string replacement){
string result = Regex.Replace(
replacement.Replace("$","$$"),