Отрицание регулярных выражений
У меня есть несколько шаблонов регулярных выражений:
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]+)
Но я не уверен, что это хорошее решение