^start of line
Positive Lookahead(?=[^a-z]*[a-z]) Negated Character Class[^a-z]* *matches any number of characters outside the set below:
a-zone character from a (9710) to z (12210) (case sensitive)
a-zone character from a (9710) to z (12210) (case sensitive)
.*?any character (except for line terminators), repeated any number of times
Athe literal A (6510 / 1018 / 4116) (case sensitive)
Bthe literal B (6610 / 1028 / 4216) (case sensitive)
.*any character (except for line terminators), repeated any number of times
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