Group ap_name(?P<ap_name>\S+) \S+any non-whitespace character, repeated at least once
\s+any whitespace character, repeated at least once
Group slots(?P<slots>\d+) \d+a digit, repeated at least once
\s+any whitespace character, repeated at least once
Group model_number(?P<model_number>\S+) \S+any non-whitespace character, repeated at least once
\s+any whitespace character, repeated at least once
Group ether_mac(?P<ether_mac>\S+) \S+any non-whitespace character, repeated at least once
\s+any whitespace character, repeated at least once
Group radio_mac(?P<radio_mac>\S+) \S+any non-whitespace character, repeated at least once
\s+any whitespace character, repeated at least once
Group location(?P<location>.*?) .*?any character (except for line terminators), repeated any number of times
\s+any whitespace character, repeated at least once
Group country(?P<country>[A-Z]{2,}) {2,}matches at least 2 characters from the set below:
A-Zone character from A (6510) to Z (9010) (case sensitive)
Non-Capturing Group(?:\s+(?P<ip_address>\d{1,3}(?:\.\d{1,3}){3}))? ?repeats the group contents below at most once:
\s+any whitespace character, repeated at least once
Group ip_address(?P<ip_address>\d{1,3}(?:\.\d{1,3}){3}) \d{1,3}a digit, repeated between 1 and 3 times
Non-Capturing Group(?:\.\d{1,3}){3} {3}repeats the group contents below exactly 3 times:
\.the literal . (4610 / 568 / 2E16)
\d{1,3}a digit, repeated between 1 and 3 times
\s+any whitespace character, repeated at least once
Group state(?P<state>\S+) \S+any non-whitespace 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