Как то так:
Код:

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GUIRichEdit.au3>
$sEditText = ''
$hGUI = GUICreate("Test Script", 300, 200)
$hRichEdit = _GUICtrlRichEdit_Create($hGUI, 'Some data with tags [img][/img], [b][/b], and more.', 20, 20, 260, 160, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
GUISetState(@SW_SHOW, $hGUI)
AdlibRegister('_SetEdit', 100)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
_GUICtrlRichEdit_Destroy($hRichEdit)
Exit
EndSwitch
WEnd
Func _SetEdit()
$aPos = _GUICtrlRichEdit_GetSel($hRichEdit)
$sData = _GUICtrlRichEdit_GetText($hRichEdit)
If $sEditText <> $sData Then
$sEditText = $sData
Else
Return
EndIf
_GUICtrlRichEdit_SetReadOnly($hRichEdit, True)
Dim $aTags[2][3] = [['[b][/b]', 'bo', 0x000000], ['[img][/img]', '', 0x0FFF00]]
For $i = 0 To UBound($aTags)-1
StringReplace($sData, $aTags[$i][0], '')
$iC = @extended
For $j = 1 To $iC
$iPos = StringInStr($sData, $aTags[$i][0], 2, $j)
_GUICtrlRichEdit_SetSel($hRichEdit, $iPos-1, $iPos + StringLen($aTags[$i][0])-1)
If $iPos Then
If $aTags[$i][1] <> '' Then
_GUICtrlRichEdit_SetCharAttributes($hRichEdit, '+' & $aTags[$i][1])
EndIf
_GUICtrlRichEdit_SetCharColor($hRichEdit, $aTags[$i][2])
EndIf
Next
_GUICtrlRichEdit_SetSel($hRichEdit, $aPos[0], $aPos[1])
_GUICtrlRichEdit_SetCharAttributes($hRichEdit, '-' & $aTags[$i][1])
;_GUICtrlRichEdit_SetCharColor($hRichEdit, Default)
Next
_GUICtrlRichEdit_SetReadOnly($hRichEdit, False)
EndFunc