В теории формальных языков под регулярным выражением понимается алгебраическая запись множества символьных слов, которая имеет вид формулы, где символы конечного алфавита чередуются со знаками регулярных операций. Теоретически обосновано, что любое регулярное множество слов, составленных из символов конечного алфавита, замкнуто относительно регулярных операций объединения, конкатенации и итерации. Они образуют базовый операционный набор для конструирования регулярных выражений. Операция объединения предоставляет возможность выбора слов по любой из двух альтернатив. Конкатенация используется для слияния слов, когда одно слово приписывается к другому справа. Итерация обеспечивает повторение слова произвольное число или ноль раз.
Первоначально регулярные выражения были введены С. Клини для удобства формального описания множества регулярных событий в нейронных сетях средствами теории конечных автоматов. В практическом программировании регулярные выражения были впервые использованы К. Томпсоном в текстовом редакторе qed, на основе которого был разработан популярный в прошлом текстовый редактор ed для OS UNIX. Регулярные выражения ed уступали по возможностям регулярным выражениям qed, но именно они получили широкое распространение за пределами теоретических кругов. Одна из служебных команд ed обеспечивала вывод на консоль строк редактируемого текстового файла, в которых найдено совпадение фрагментов текста с заданным регулярным выражением. Эта функция оказалась настолько полезной, что была преобразована в отдельную утилиту grep (Global Regular Expression Print), которая в настоящее время широко используется в различных операционных средах для поиска информации в текстовых файлах на основе заданного регулярного выражения. В настоящее время различные диалекты регулярных выражений активно применяются в разнообразных инструментальных средствах, которые ориентированы на обработку текстовой информации. В частности, регулярные выражения применяются в сценарных языках Perl, Tcl и Pyton, в текстовых редакторах, например, Emacs и vi, в языках командных процессоров sh, csh, ksh, bash для OS UNIX, в генераторе отчетов awk, в потоковом редакторе sed и в других специализированных утилитах, ориентированных на обработку текстовых данных.