g modifier: global. Finds all matches instead of stopping after the first
i modifier: insensitive. Matches without distinguishing uppercase and lowercase letters
x modifier: extended. Ignores unescaped whitespace and comments outside character classes
U modifier: Ungreedy. Quantifiers are lazy by default. A trailing ? makes a quantifier greedy