mult = (mac / any)+
mac = pre (dotMAC / colonMAC / hyphenMAC) post
dotMAC = (alnum{4} "."){2} alnum{4}
colonMAC = (alnum{2} ":"){5} alnum{2}
hyphenMAC = (alnum{2} "-"){5} alnum{2}
alnum = ~"[a-fA-F0-9]"

any = ~r"(.|\s)+?(?=((?<=[\s\"\”(])|^).)" / ~r"(.|\s)+"
pre = ~r"((?<=[\s\"\”(])|^)"
post = ~r"(?=(([.,\"\”])|\),?)\s|\s|$)"
space = " "
dash = "-"
zero = "0"
one = "1"
onetotwo = ~"[1-2]"
onetonine = ~"[1-9]"
digit = ~"[0-9]"
num = twofifty / twohun / hun / tens
twofifty = ~"25[0-5]"
twohun = ~"2[0-4][0-9]"
hun = one digit{2}
tens = ~"[1-9]?[0-9]"
blocks = ~r"/(0|[1-9][0-9]?)"
ipv4_raw = (num "."){3} num blocks?

