Una posibilidad mas y diferente.
    
Código vb:
Ver originalPrivate Sub RichTextBox1_KeyPress(KeyAscii As Integer)
  Static ColorNegro As Boolean
  If ColorNegro Then
    ' Si recibió un caracter de Cierre, activa antes color Negro
    RichTextBox1.SelColor = vbBlack
    ColorNegro = False
  End If
  Select Case Chr$(KeyAscii)
    Case Is = "[": RichTextBox1.SelColor = vbBlue
    Case Is = "(": RichTextBox1.SelColor = vbRed
    Case Is = "{": RichTextBox1.SelColor = vbGreen
    Case Is = "<": RichTextBox1.SelColor = vbMagenta
    Case Is = "¿": RichTextBox1.SelColor = vbCyan
    Case Is = "]", ")", "}", ">", "?"
      ColorNegro = True
      ' Cambiará color justo antes de la próxima pulsacion
  End Select
End Sub
  
Solo necesitas un RichTextBox para probarlo