Der erste Teil stimmt mit einer optionalen öffnenden Klammer überein, und wenn dieses Zeichen vorhanden ist, wird es als erste erfasste Teilzeichenfolge festgelegt. Der zweite Teil entspricht einem oder mehreren Zeichen, die keine Klammern haben. Der dritte Teil ist ein bedingtes Untermuster, das testet, ob der erste Satz von Klammern übereinstimmt oder nicht. Wenn dies der Fall ist, ist die Bedingung wahr, wenn die Zeichenfolge mit einer öffnenden Klammer begonnen hat, und daher wird das ja-Muster ausgeführt, und es ist eine schließende Klammer erforderlich. Andernfalls entspricht das Untermuster nichts, da kein Muster vorhanden ist. Mit anderen Worten, dieses Muster entspricht einer Abfolge von Nicht-Klammern, die optional in Klammern eingeschlossen sind. Der POSIX-Standard definiert 12 Zeichenklassen. In der folgenden Tabelle sind alle 12 Klassen sowie die Klassen [:ascii:] und [:word:] aufgeführt, die von einigen Regex-Varianten ebenfalls unterstützt werden. Die Tabelle zeigt auch äquivalente Zeichenklassen, die Sie in regulären AUSdrücken von ASCII und Unicode verwenden können, wenn die POSIX-Klassen nicht verfügbar sind. Die ASCII-Äquivalente entsprechen genau dem, was im POSIX-Standard definiert ist. Die Unicode-Äquivalente entsprechen dem, was die meisten Unicode-Regex-Engines übereinstimmen. Der POSIX-Standard definiert kein Unicode-Gebietsschema. Einige Klassen haben auch Shorthand-Äquivalente im Perl-Stil.

Eine Zeichenklasse stellt eine Reihe von Zeichen dar. Wenn eine regex-Implementierung Abschnitt 2.2.1 Zeichenklassen mit Zeichenfolgen folgt, kann die Gruppe auch Sequenzen von Zeichen enthalten. Die folgende Syntax für Zeichenklassen wird in aufeinanderfolgenden Abschnitten verwendet und erweitert. Im Allgemeinen bieten nur POSIX-kompatible Regular Expression-Engines die richtige und vollständige Unterstützung für POSIX-Bracket-Ausdrücke. Einige Nicht-POSIX-Regex-Engines unterstützen POSIX-Zeichenklassen, unterstützen jedoch in der Regel keine Sortiersequenzen und Zeichenäquivalente. Module für reguläre Ausdrücke, die Unicode unterstützen, verwenden Unicode-Eigenschaften und Skripts, um Funktionen bereitzustellen, die POSIX-Klammerausdrücken ähneln. In Unicode-Regex-Engines stimmen Kurzschrift-Zeichenklassen wie z. B. die Datei «W» normalerweise mit allen relevanten Unicode-Zeichen überein, wodurch die Notwendigkeit der Verwendung von Gebietsschemas entsteht. Wenn die Bedingung nicht in einem der oben genannten Formate ist, muss es sich um eine Assertion handelt. Dies kann eine positive oder negative Lookahead oder Lookbehind Behauptung sein.

Betrachten Sie dieses Muster, das wiederum nicht signifikanten Leerraum enthält, und mit den beiden Alternativen in der zweiten Zeile: Abgesehen von POSIX-kompatiblen Engines, die Teil eines POSIX-kompatiblen Systems sind, unterstützt keine der in diesem Tutorial beschriebenen Regex-Varianten das Sortieren von Sequenzen. Theoretisch kann jeder Tokensatz mit regulären Ausdrücken abgeglichen werden, solange er vordefiniert ist. In Bezug auf historische Implementierungen wurden Regexe ursprünglich geschrieben, um ASCII-Zeichen als Tokensatz zu verwenden, obwohl Regex-Bibliotheken zahlreiche andere Zeichensätze unterstützt haben. Viele moderne Regex-Engines bieten zumindest eine gewisse Unterstützung für Unicode. In den meisten Punkten macht es keinen Unterschied, was der Zeichensatz ist, aber einige Probleme treten auf, wenn Regexes zur Unterstützung von Unicode erweitert werden. Hinweis: Dies ist nur eine Beispielsyntax für Die Zwecke von Beispielen in diesem Dokument. Die Syntax für reguläre Ausdrücke ist sehr unterschiedlich: Die hier behandelten Probleme müssten an die Syntax der jeweiligen Implementierung angepasst werden. Es ist jedoch wichtig, eine konkrete Syntax zu haben, um die verschiedenen Probleme richtig zu veranschaulichen. Im Allgemeinen ähnelt die Syntax hier der von Perl Regular Expressions [Perl].) In einigen Fällen gibt dies mehrere syntaktische Konstrukte, die für die gleiche Funktionalität bieten.