Чтобы соответствовать вашим требованиям, вы можете сначала сделать
newSearchString = Regex.Replace(Regex.Escape(searchString), @"\s+", @"[\s\p{P}]+");
(чтобы преобразовать строку поиска в виде простого текста в регулярное выражение, которое также позволяет использовать знаки препинания в местах, где раньше были только пробелы), а затем применить это регулярное выражение к любому тексту, который вы ищете.
Но, конечно, это не будет соответствовать малейшей опечатке, тогда как алгоритм, использующий расстояние Левенштейна, также будет соответствовать "Stak Overfloor".