Отрицание регулярных выражений

У меня есть несколько шаблонов регулярных выражений:

LPARENT [(]
RPARENT [)]
COMMA [,]
BOR [|]
BAND [&]
IDENTIFIER [[:alpha:]_][[:alnum:]_]*
ASSIGN [=]
ILIT 0[xX][0-9a-fA-F]+

На вход даем любую строку, на выходе получаем класс строки.

Как сформировать регулярное выражение для шаблона ERROR, чтобы оно определяла не принадлежащие к другим шаблонам слова?

Например, чтобы строка 0xtrue принадлежало шаблону ERROR.

Пока что я сделал так:

WHITESPACES [\t ]+
LPARENT [(]
RPARENT [)]
COMMA [,]
BOR [|]
BAND [&]
IDENTIFIER [[:alpha:]_][[:alnum:]_]*
ASSIGN [=]
ILIT 0[x]([0-9a-fA-F]{1,3})
ERROR .|0[x]([0-9a-z]+)

Но я не уверен, что это хорошее решение


Ответы (0 шт):