@@ -161,30 +161,36 @@ The special characters are:
161
161
raw strings for all but the simplest expressions.
162
162
163
163
``[] ``
164
- Used to indicate a set of characters. Characters can be listed individually, or
165
- a range of characters can be indicated by giving two characters and separating
166
- them by a ``'-' ``. Special characters are not active inside sets. For example,
167
- ``[akm$] `` will match any of the characters ``'a' ``, ``'k' ``,
168
- ``'m' ``, or ``'$' ``; ``[a-z] `` will match any lowercase letter, and
169
- ``[a-zA-Z0-9] `` matches any letter or digit. Character classes such
170
- as ``\w `` or ``\S `` (defined below) are also acceptable inside a
171
- range, although the characters they match depends on whether
172
- :const: `ASCII ` or :const: `LOCALE ` mode is in force. If you want to
173
- include a ``']' `` or a ``'-' `` inside a set, precede it with a
174
- backslash, or place it as the first character. The pattern ``[]] ``
175
- will match ``']' ``, for example.
176
-
177
- You can match the characters not within a range by :dfn: `complementing ` the set.
178
- This is indicated by including a ``'^' `` as the first character of the set;
179
- ``'^' `` elsewhere will simply match the ``'^' `` character. For example,
180
- ``[^5] `` will match any character except ``'5' ``, and ``[^^] `` will match any
181
- character except ``'^' ``.
182
-
183
- Note that inside ``[] `` the special forms and special characters lose
184
- their meanings and only the syntaxes described here are valid. For
185
- example, ``+ ``, ``* ``, ``( ``, ``) ``, and so on are treated as
186
- literals inside ``[] ``, and backreferences cannot be used inside
187
- ``[] ``.
164
+ Used to indicate a set of characters. In a set:
165
+
166
+ * Characters can be listed individually, e.g. ``[amk] `` will match ``'a' ``,
167
+ ``'m' ``, or ``'k' ``.
168
+
169
+ * Ranges of characters can be indicated by giving two characters and separating
170
+ them by a ``'-' ``, for example ``[a-z] `` will match any lowercase ASCII letter,
171
+ ``[0-5][0-9] `` will match all the two-digits numbers from ``00 `` to ``59 ``, and
172
+ ``[0-9A-Fa-f] `` will match any hexadecimal digit. If ``- `` is escaped (e.g.
173
+ ``[a\-z] ``) or if it's placed as the first or last character (e.g. ``[a-] ``),
174
+ it will match a literal ``'-' ``.
175
+
176
+ * Special characters lose their special meaning inside sets. For example,
177
+ ``[(+*)] `` will match any of the literal characters ``'(' ``, ``'+' ``,
178
+ ``'*' ``, or ``')' ``.
179
+
180
+ * Character classes such as ``\w `` or ``\S `` (defined below) are also accepted
181
+ inside a set, although the characters they match depends on whether
182
+ :const: `ASCII ` or :const: `LOCALE ` mode is in force.
183
+
184
+ * Characters that are not within a range can be matched by :dfn: `complementing `
185
+ the set. If the first character of the set is ``'^' ``, all the characters
186
+ that are *not * in the set will be matched. For example, ``[^5] `` will match
187
+ any character except ``'5' ``, and ``[^^] `` will match any character except
188
+ ``'^' ``. ``^ `` has no special meaning if it's not the first character in
189
+ the set.
190
+
191
+ * To match a literal ``']' `` inside a set, precede it with a backslash, or
192
+ place it at the beginning of the set. For example, both ``[()[\]{}] `` and
193
+ ``[]()[{}] `` will both match a parenthesis.
188
194
189
195
``'|' ``
190
196
``A|B ``, where A and B can be arbitrary REs, creates a regular expression that
0 commit comments