\b assert position at a word boundary: (^\w|\w$|\W\w|\w\W)
de matches the characters de literally (case sensitive)
f
matches the character f literally (case sensitive)? matches the previous token between zero and one times, as many times as possible, giving back as needed (greedy)
\b assert position at a word boundary: (^\w|\w$|\W\w|\w\W)
g modifier: global. All matches (don't return after first match)
m modifier: multi line. Causes ^ and $ to match the begin/end of each line (not only begin/end of string)