Магия может происходит тогда, когда данные берутся с файла, который сохранён в кодировке с BOM.
В этом случае впереди файла размещается метка - из-за чего получается, что мы видим слово, а в реальности компьютер видит там ещё дополнительные байты.
Если есть вероятность появления такой метки (данные берутся с какого-то списка, таблицы CSV), то прежде чем что-то с ними делать - есть смысл удалить метку.
string get = "text......"; // допустим этот текст получен с файла
get = get.TrimStart('\uFEFF'); // Пример удаления BOM метки
Пример удаления метки BOM в списке
List<string> list = new List<string>();
//
// допустим здесь мы заполнили список данными с файла
//
list = list.AsParallel().Select(y => y.TrimStart('\uFEFF')).ToList(); // Удаляем метку BOM, если такая есть
Я не знаю, это конкретно Ваш случай или нет, но мне данная проблема где-то неделю выносила мозг, и я не мог понять почему шаблон не всегда отрабатывает корректно - а оказывается, получал данные с сайта GET запросом - и результат включал эти байты перед ответом.