What about using a negated character class
\[\[[^\]]*\]\]
This class would match anything but "]"
See it here on Regexr
To avoid the square brackets beeing part of the result, you can either use a capturing group
\[\[([^\]]*)\]\]
and get the result from group 1
or use lookaround assertions (if it is supported by your regex engine)
(?<=\[\[)[^\]]*(?=\]\])
See it on Regexr