Всякий раз, когда тот же результат может быть достигнут с разумным количеством кода.
Регулярные выражения очень мощные, но их трудно читать. Если вы можете сделать то же самое с простыми строковыми операциями, это обычно означает, что код становится проще в управлении и обслуживании.
Существуют некоторые издержки при настройке объекта и анализе выражения. Для упрощения работы со строками вы можете повысить производительность с помощью простых строковых методов.
Пример:
Получение имени файла из пути к файлу (да, я знаю, что для этого следует использовать класс Path, это всего лишь пример ...)
string name = Regex.Match(path, @"([^\\]+)$").Groups[0].Value;
против
string name = path.Substring(path.LastIndexOf('\\') + 1);
Второе решение простое и выполняет минимальную работу, необходимую для получения результата. Решение с регулярным выражением дает тот же результат, но выполняет больше работы по анализу строки и создает группу объектов, которые не нужны для результата.