(?J)applies the following effective flags to the remainder of the pattern: gmJ J modifier: Allow duplicate subpattern names
^start of line
Negated Character Class[^f]+ +matches at least one character outside the set below:
fthe literal f (10210 / 1468 / 6616) (case sensitive)
the literal (3210 / 408 / 2016)
Group vendor_product(?<vendor_product>[^\.]+) Negated Character Class[^\.]+ +matches at least one character outside the set below:
\.the literal . (4610 / 568 / 2E16)
.any character (except for line terminators)
Group vendor_module(?<vendor_module>[^\s]+) Negated Character Class[^\s]+ +matches at least one character outside the set below:
\sany whitespace character
\s+any whitespace character, repeated at least once
\[the literal [ (9110 / 1338 / 5B16)
+matches at least one character from the set below:
\da digit
\sany whitespace character
Group vendor_level(?<vendor_level>[\w]+) +matches at least one character from the set below:
\wany word character
\s+any whitespace character, repeated at least once
Group 5(\[(?<jail>[^\]]+)]\s)? ?repeats the group contents below at most once:
\[the literal [ (9110 / 1338 / 5B16)
Group jail(?<jail>[^\]]+) Negated Character Class[^\]]+ +matches at least one character outside the set below:
\]the literal ] (9310 / 1358 / 5D16)
]the literal ] (9310 / 1358 / 5D16)
\sany whitespace character
Group vendor_message(?<vendor_message>(?<vendor_action>Found|Ban|Unban|Restore Ban)?\s?(?<src>(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\s?(?<vendor_action>already banned|is not banned| - ((?<initial_date>.*))?)?|.*) 1st Alternative(?<vendor_action>Found|Ban|Unban|Restore Ban)?\s?(?<src>(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\s?(?<vendor_action>already banned|is not banned| - ((?<initial_date>.*))?)? Group vendor_action(?<vendor_action>Found|Ban|Unban|Restore Ban)? ?repeats the group contents below at most once:
Foundthe literal text Found (case sensitive) Banthe literal text Ban (case sensitive) Unbanthe literal text Unban (case sensitive) 4th AlternativeRestore Ban Restore Banthe literal text Restore Ban (case sensitive) \s?optionally matches any whitespace character
Group src(?<src>(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)) Non-Capturing Group(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3} {3}repeats the group contents below exactly 3 times:
Non-Capturing Group(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) 0-5one character from 0 (4810) to 5 (5310)
2nd Alternative2[0-4][0-9] 3rd Alternative[01]?[0-9][0-9]? \.the literal . (4610 / 568 / 2E16)
Non-Capturing Group(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?) \s?optionally matches any whitespace character
Group vendor_action(?<vendor_action>already banned|is not banned| - ((?<initial_date>.*))?)? $end of line
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