Maybe do this in two steps.
First replace bracketed terms with a single character. Here's a link which has a function for using regular expressions.
http://excel.tips.net/T003303_Wildca...With_Text.html
I've modified this slightly to cope with multiple occurences
Public Function SearchNReplace1(Pattern1 As String, _
Pattern2 As String, Replacestring As String, _
TestString As String) As String
Dim reg As New RegExp
reg.IgnoreCase = True
reg.MultiLine = False
Do
reg.Pattern = Pattern1
If reg.Test(TestString) Then
reg.Pattern = Pattern2
TestString = reg.Replace(TestString, Replacestring)
Else
SearchNReplace1 = TestString
Exit Do
End If
Loop
End Function
=SearchNReplace1("\[.*\]","\[.*\]","|",A1)
Then do a text to columns with the | character as a delimiter.
Bookmarks