As I suggest it in my comment you can use a non-capturing group (?:...)
and the quantifier ?
to reduce the regex engine work:
<dict>
<key>match</key>
<string>\b(add(?:\.b)?|addc(?:\.b)?|mov(?:\.b)?)\b</string>
<key>name</key>
<string>keyword.mnemonic</string>
</dict>
or with more factorization: (I added the nop
and rlf
mnemonics to show the level depth of parenthesis)
<dict>
<key>match</key>
<string>\b(nop|(?:addc?|mov)(?:\.b)?|rlf)\b</string>
<key>name</key>
<string>keyword.mnemonic</string>
</dict>