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
i modifier: insensitive. Matches without distinguishing uppercase and lowercase letters
u modifier: unicode case. Applies case-insensitive matching to Unicode characters according to the Unicode Standard
U modifier: Unicode. Enables built-in character classes and case-insensitive matching to use Unicode rules