^start of line
Negative Lookahead(?!.*aaa) .*any character (except for line terminators), repeated any number of times
aaathe literal text aaa (case sensitive) .*any character (except for line terminators), repeated any number of times
a{1,2}the literal a (9710 / 1418 / 6116) (case sensitive), repeated between 1 and 2 times
.*any character (except for line terminators), repeated any number of times
$end of line
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