Group client_ip(?P<client_ip>[\d.]+) +matches at least one character from the set below:
\da digit
.the literal . (4610 / 568 / 2E16)
\[the literal [ (9110 / 1338 / 5B16)
Group timestamp(?P<timestamp>.*?) .*?any character (except for line terminators), repeated any number of times
\]the literal ] (9310 / 1358 / 5D16)
Group request_method(?P<request_method>\w+) \w+any word character, repeated at least once
the literal (3210 / 408 / 2016)
Group request_uri(?P<request_uri>.*?) .*?any character (except for line terminators), repeated any number of times
the literal (3210 / 408 / 2016)
Group protocol(?P<protocol>.*?) .*?any character (except for line terminators), repeated any number of times
the literal (3210 / 408 / 2016)
Group protocol_version(?P<protocol_version>.*?) .*?any character (except for line terminators), repeated any number of times
Group status(?P<status>\d+) \d+a digit, repeated at least once
the literal (3210 / 408 / 2016)
Group response_size(?P<response_size>\d+|-) \d+a digit, repeated at least once
-the literal - (4510 / 558 / 2D16)
Group referrer(?P<referrer>.*?) .*?any character (except for line terminators), repeated any number of times
Group user_agent(?P<user_agent>.*?) .*?any character (except for line terminators), repeated any number of times
"the literal " (3410 / 428 / 2216)
g modifier: global. Finds all matches instead of stopping after the first
m modifier: multiline. Causes ^ and $ to match the start and end of each line, not only the start and end of the string