Я думаю, что регулярное выражение не может найти этих персонажей, потому что их там нет.Если вы инициализируете строку следующим образом:
$source = "Thanks for a payment of 46,00 $C";
... (т.е. как строковый литерал в двойных кавычках), $C
интерпретируется как имя переменной.Поскольку вы никогда не инициализировали эту переменную , она заменяется ничем в текущей строке.Вы должны либо использовать одинарные кавычки для инициализации строки, либо экранировать знак доллара с обратной косой чертой, как вы это сделали в регулярном выражении.
Кстати, это не может быть проблемой кодирования, потому что (вНапример, по крайней мере), все символы из набора символов ASCII.Будь то кодировка UTF-8, ISO-8859-1 или ASCII, двоичное представление строки будет идентичным.