I'm a bit surprised your regex doesn't blow up with a compile issue since asterisk is a special character - it means 'zero or more' of whatever was previous. Based on your regex, you are capturing:
* zero or more of (nothing)
* zero or more of (nothing)
(.) any single character (in a capturing group)
* zero or more of (the previous item, 'any character')
What you want is, I think:
/\*\*(.*?)\*\*/ig
Thats:
\* the asterisk character
\* another asterisk
(.*?) anything, non-greedy (up until whatever is next in the regex)
\* the asterisk character
\* another asterisk