I wouldn't do this with search and replace. Try this code as an alternative
Code:
Sub SetFieldFormat()
Dim aFld As Field, sCode As String
For Each aFld In ActiveDocument.Fields
sCode = LCase(aFld.Code)
If sCode Like "* ref *" Then
Debug.Print sCode
If Not sCode Like "*\w*" Then
aFld.Result.Font.Italic = True
aFld.Result.Font.Bold = False
If sCode Like "*mergeformat*" Then
sCode = Replace(sCode, "merge", "char")
ElseIf Not sCode Like "*charformat*" Then
sCode = sCode & " \* charformat "
aFld.Code.Text = sCode
End If
aFld.Update
End If
End If
Next aFld
End Sub