Group remote_addr(?P<remote_addr>(?:^|\b(?<!\.))(?:1?\d\d?|2[0-4]\d|25[0-5])(?:\.(?:1?\d\d?|2[0-4]\d|25[0-5])){3}(?=$|[^\w.])) Non-Capturing Group(?:^|\b(?<!\.)) \ba Unicode word boundary
Negative Lookbehind(?<!\.) \.the literal . (4610 / 568 / 2E16)
Non-Capturing Group(?:1?\d\d?|2[0-4]\d|25[0-5]) 1?optionally matches the literal 1 (4910 / 618 / 3116)
\da Unicode decimal digit
\d?optionally matches a Unicode decimal digit
2the literal 2 (5010 / 628 / 3216)
0-4one character from 0 (4810) to 4 (5210)
\da Unicode decimal digit
0-5one character from 0 (4810) to 5 (5310)
Non-Capturing Group(?:\.(?:1?\d\d?|2[0-4]\d|25[0-5])){3} {3}repeats the group contents below exactly 3 times:
\.the literal . (4610 / 568 / 2E16)
Non-Capturing Group(?:1?\d\d?|2[0-4]\d|25[0-5]) 1?optionally matches the literal 1 (4910 / 618 / 3116)
\da Unicode decimal digit
\d?optionally matches a Unicode decimal digit
2the literal 2 (5010 / 628 / 3216)
0-4one character from 0 (4810) to 4 (5210)
\da Unicode decimal digit
0-5one character from 0 (4810) to 5 (5310)
Positive Lookahead(?=$|[^\w.]) $end of string, or before its final line terminator
Negated Character Class[^\w.] \wa Unicode word character
.the literal . (4610 / 568 / 2E16)
\sa Unicode whitespace character
-the literal - (4510 / 558 / 2D16)
\sa Unicode whitespace character
Group remote_usr(?P<remote_usr>-|[a-z_][a-z0-9_]{0,30}) -the literal - (4510 / 558 / 2D16)
2nd Alternative[a-z_][a-z0-9_]{0,30} Character Class[a-z0-9_]{0,30} \sa Unicode whitespace character
Group date_time(?P<date_time>\[(?P<date>[0-2][0-9]\/\w{3}\/[12]\d{3}):(?P<time>\d\d:\d\d:\d\d).*\]) \sa Unicode whitespace character
Group request(?P<request>\"(?P<req_method>GET|POST|HEAD|PUT|DELETE|CONNECT|OPTIONS|TRACE|PATCH)\s(?P<req_uri>\/[^\s]*)\s(?P<http_ver>HTTP/\d\.\d)\") \sa Unicode whitespace character
Group status(?P<status>\d{3}) \sa Unicode whitespace character
Group body_byte_sent(?P<body_byte_sent>\d+) \sa Unicode whitespace character
\"the literal " (3410 / 428 / 2216)
Group http_referer(?P<http_referer>[^\s]+) \"the literal " (3410 / 428 / 2216)
\sa Unicode whitespace character
\"the literal " (3410 / 428 / 2216)
Group user_agent(?P<user_agent>[^\"]+) \"the literal " (3410 / 428 / 2216)
\sa Unicode whitespace character
\"the literal " (3410 / 428 / 2216)
Group forward_for(?P<forward_for>[^\"]+) \"the literal " (3410 / 428 / 2216)