Если в начале набора поставить ^, он превращается в «любой символ, КРОМЕ перечисленных»:
[^0-9] — любой символ, кроме цифры [^aeiou] — любой символ, кроме этих гласных [^\s] — любой непробельный (то же, что \S)
Важно: символ ^ имеет два разных смысла. В начале набора [^...] — это отрицание. В начале всего шаблона (вне скобок) — это якорь начала строки (о якорях — в следующем разделе). Не путайте их.
Внутри квадратных скобок большинство метасимволов теряют особый смысл и означают себя:
[.+*] — именно точка, плюс или звёздочка
То есть точку внутри [ ] экранировать не нужно. Это упрощает наборы.
Итог: символьные классы — основа точных шаблонов. Вместо «любого символа» вы говорите «цифра», «буква», «один из этих» или «любой, кроме этих». Дальше добавим, сколько раз символ должен повториться.