Replace the entire code with
Option Explicit
Option Compare Text
Sub test()
Dim myPtn As String, r As Range, m As Object, dic As Object, e
Set dic = CreateObject("Scripting.Dictionary")
dic.CompareMode = 1
Columns(2).Font.ColorIndex = xlAutomatic
For Each r In Range("c1", Cells(1, Columns.Count).End(xlToLeft))
dic(r.Value) = r.Interior.Color
Next
With CreateObject("VBScript.RegExp")
.Global = True
.IgnoreCase = True
.Pattern = "(\*)"
myPtn = "\b(" & .Replace(Join$(dic.keys, "|"), "\w$1") & ")\b"
.Pattern = myPtn
For Each r In Range("b2", Range("b" & Rows.Count).End(xlUp))
If .test(r.Value) Then
For Each m In .Execute(r.Value)
For Each e In dic
If m.Value Like e Then Exit For
Next
r.Characters(m.firstindex + 1, m.Length).Font.Color = dic(e)
Next
End If
Next
End With
End Sub
Bookmarks