compile and flags

re.I, re.M, re.X.

re.compile reuses a pattern. re.I ignores case, re.M makes ^ work per line, re.X allows comments.

Goal

Compile once and scan several kiosk strings.

import re
pat = re.compile(r"nairobi", re.I)
print(bool(pat.search("Kiosk NAIROBI")))
print(bool(pat.search("Kisumu")))
import re
text = "Nairobi 12\nKisumu 3\n"
print(re.findall(r"^\w+", text, re.M))
import re
pat = re.compile(r"""
    (?P<city>\w+)
    \s+
    (?P<units>\d+)
""", re.X)
print(pat.search("Nairobi 12").groupdict())
import re
pat = re.compile(r"\d+")
print([pat.findall(s) for s in ("12 units", "price 10.5", "none")])