\(the literal ( (4010 / 508 / 2816)
\w+any word character, repeated at least once
;the literal ; (5910 / 738 / 3B16)
\s+any whitespace character, repeated at least once
Group os_family(?<os_family>\w+) \w+any word character, repeated at least once
\sany whitespace character
Group os_version(?<os_version>\w+[^ ]+) \w+any word character, repeated at least once
Negated Character Class[^ ]+ +matches at least one character outside the set below:
the literal (3210 / 408 / 2016)
;the literal ; (5910 / 738 / 3B16)
\sany whitespace character
Group device_brand_model(?<device_brand_model>\w+) \w+any word character, repeated at least once
.*any character (except for line terminators), repeated any number of times
\sany whitespace character
Group browser_engine(?<browser_engine>\w+) \w+any word character, repeated at least once
\Dany character that's not a digit
Group brow_engine_version(?<brow_engine_version>\w+[^ ]+) \w+any word character, repeated at least once
Negated Character Class[^ ]+ +matches at least one character outside the set below:
the literal (3210 / 408 / 2016)
\s+any whitespace character, repeated at least once
\(the literal ( (4010 / 508 / 2816)
.+any character (except for line terminators), repeated at least once
\)the literal ) (4110 / 518 / 2916)
\s+any whitespace character, repeated at least once
Group browser(?<browser>\w+) \w+any word character, repeated at least once
.any character (except for line terminators)
Group browser_version(?<browser_version>\w+[^ ]+) \w+any word character, repeated at least once
Negated Character Class[^ ]+ +matches at least one character outside the set below:
the literal (3210 / 408 / 2016)
\s+any whitespace character, repeated at least once
Group hardware_type(?<hardware_type>\w+) \w+any word character, repeated at least once
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