lighttpd2 uses the “Perl-compatible regular expressions” implementation from GLib, see their Regular expression syntax documentation.
The config format has different ways to provide strings (you can quote with either
"; the character used to quote has to be escaped with
\ if used inside the string).
The simple (standard) way
"text" has the following escape rules:
"\n"is a newline,
"\r"a carriage return,
"\t"a tab stop
"\""is one double quote
"\'"a single quote
- escaping single/double quote is optional if the symbol is not used to terminate the string, i.e.
"\xNN": NN must be hexadecimal characters, and the string is replaced with the decoded 8-bit value as a single byte
- All other
\occurences are not removed from the string.
This way is the preferred one for regular expressions; only to actually match a
\ you have to do additional escaping (
"\\" is not working), and
\\ is usually not doing what you wanted (matching a digit:
"\d"). All other escape rules are compatible with what pcre is doing.
The second way is to place an
e before the string like this:
e"text". It has the same rules like the normal string, but does not allow unknown escape sequences (the last rule above).
To match a digit with pcre this way you’d have to write
e"\\d" instead of