35.3.3.2 Функции и макросы с использованием регулярных выражений rx

Макрос: rx rx-form…

Преобразует rx-form в строковое регулярное выражение, как если бы они были телом формы (seq …). Макрос rx расширяется до строковой константы или, если используются формы literal или regexp, до выражения Lisp, которое вычисляется в строку. Пример:

(rx (+ alpha) "=" (+ digit))
  ⇒ "[[:alpha:]]+=[[:digit:]]+"
Функция: rx-to-string rx-expr &optional no-group

Преобразует rx-expr в строковое регулярное выражение, которое возвращается. Если no-group отсутствует или равен nil, оборачивает результат в незахватывающую группу, ‘\(?:…\)’, если это необходимо для обеспечения того, что последующий оператор применяется ко всему выражению. Пример:

(rx-to-string '(seq (+ alpha) "=" (+ digit)) t)
  ⇒ "[[:alpha:]]+=[[:digit:]]+"

Аргументы для форм literal и regexp в rx-expr должны быть строковыми литералами.

Макрос pcase может использовать выражения rx в качестве шаблонов напрямую; см. rx в pcase.

Чтобы добавить пользовательские расширения к нотации rx, см. Определение новых форм rx.