First, you do not need regular expressions to split tags, there are core filter operators for tags specifically, even then a tags field is what we call a list field and there are additional operators such as list and enlist that can be used.
Please explain for what purpose you want tags in the following format?
("tag1 & 2", "tag2", "[tag]", "[[tag 4]]")
- This can be constructed but what do you intend to do with the result?
- Are you in fact writing a Java Script solution?
- Why not use TiddlyWiki Script?
For example;
\function tag-array() [all[current]tags[]addprefix["]addsuffix["]] +[join[, ]] +[addprefix[(]] +[addsuffix[)]]
<<tag-array>>
returns ("a", "b", "c", "tag with spaces")