Re non-capturing parentheses, this might help:
https://stackoverflow.com/questions/3512471/what-is-a-non-capturing-group-in-regular-expressions
For the most part RegEx in JS & BBEdit are much the same. The big difference is that in JS vs BBEdit is the syntax for the backreference.
(\ (backslash) in BBEdit vs $ in JS)
So for example say your Find is "AE" plus a 3rd uppercase character [A-Z], followed by a number [0-9], where you want to inserted new text between the letters and numbers...
In BBEdit that would be Find: (AE[A-Z])([0-9]) Replace: \1InsertedNewText\2
In JS the same thing is: SomeText.replace(/(AE[A-Z])([0-9])/g, $1InsertedNewText$2);