Иногда (когда альтернативных символов много) бывает довольно утомительно перечислять их всех в квадратных скобках. Особенно обидно выходит, если нас устраивает любой символ, кроме нескольких (например, кроме > и <). В этом случае, конечно, не стоит указывать 254 символа, вместо этого лучше воспользоваться конструкцией [^<>], которая обозначает любой символ, кроме тех, которые перечислены после [^ и до ]. Например, выражение a[^ \t\n\r]b "срабатывает"
на все строки, содержащие буквы a и b, разделенные любым не пробельным символом.
В отрицательной группе могут быть задействованы любые символы и выражения, которые допустимы в конструкции [...]. Таким образом, мы можем положиться на настройки локали и в этом случае.