s modifier: single line. Allows a dot to match line terminators
m modifier: multiline. Causes ^ and $ to match the start and end of each line, not only the start and end of the string
U modifier: Ungreedy. Quantifiers are lazy by default. A trailing ? makes a quantifier greedy