Thanks Andrew,
Tweaking your code a bit, I think we can prevent unwanted growth of the dbl brackets if the code is repeated.
Code:
Sub Macro1()
Dim oRng As Range
Set oRng = ActiveDocument.Range
oRng.InsertBefore "*"
With oRng.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "([!\[\(])([\[\(])([!\[\(]*)([\]\)])([!\]\)])"
.Replacement.Text = "\1[[\3]]\5"
.MatchWildcards = True
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchKashida = False
.MatchDiacritics = False
.MatchAlefHamza = False
.MatchControl = False
.MatchAllWordForms = False
.MatchSoundsLike = False
.Execute Replace:=wdReplaceAll
End With
ActiveDocument.Characters(1).Delete
MsgBox Asc(ActiveDocument.Characters.Last.Previous)
If ActiveDocument.Characters.Last.Previous = Chr(13) Then
ActiveDocument.Characters.Last.Previous.Delete
End If
lbl_Exit:
Exit Sub
End Sub