В практике
лексического анализа часто встречается ситуация, когда в
регулярном выражении какие-либо из
метасимволов должны использоваться как литералы. В этом случае их нужно экранировать либо индивидуально с помощью символа обратной дробной черты (\), либо в виде последовательности, заключенной в кавычки (").
В частности, кавычки указывают, что заключенная в них последовательность должна рассматриваться как обычные текстовые символы. Например, следующее
регулярное выражение:
ALPHA"++"
удовлетворяет входной последовательности ALPHA++, где
метасимволы, обозначенные знаком плюс, теряют свой специальный смысл, потому что их экранируют кавычки. Здесь, следует обратить внимание, на то, что экранироваться может как вся строка, так и часть строки. В данном случае экранировать пять обычных символов (ALPHA) в начале этой строки нет необходимости. В общем случае
экранирование обычных текстовых символов необязательно, хотя никакого вреда не приносит. Например, следующее регулярное выражение полностью аналогично предыдущему:
"ALPHA++"
Следует отметить, что кавычки обычно применятся для группового экранирования метасимволов. Отдельный метасимвол будет интерпретироваться как литерал, если в регулярном выражении ему предшествует знак обратной дробной черты (\). Например, в следующем регулярном выражении знак обратной дробной черты экранирует специальный смысл метасимвола *:
ALPHA\*BETA
Еще один пример индивидуального экранирования иллюстрирует следующее регулярное выражение где обратная дробная черта экранирует метасимвол /:
CAD\/CAM
Это регулярное выражение обеспечивает распознавание во входном потоке распространенной аббревиатуры CAD/CAM, которая часто встречается в научно-технической литературе по системам автоматизированного проектирования.
Механизм экранирования может быть использован также при необходимости вставки в регулярное выражение символа пробела. По определенным причинам, связанным с особенностями обработки регулярных выражений генератором LEX, символ пробел не может быть непосредственно включен в регулярное выражение как любой другой текстовый символ, например, буква или цифра. Поэтому любые пробелы, за исключением указанных в классах символов (смотрите ниже), должны экранироваться как, например, в следующем регулярном выражении, где метасимволы кавычек необходимы для вставки пробела между словами regular и expression:
regular" "expression
Аналогичный результат предоставляет следующее регулярное выражение, где экранирование пробела обеспечивает метасимвол обратной дробной черты:
regular\ expression