How I can get position of string.gmatch's

Hi guys. I’m working on custom chat, which should highlight tagged words.
I have almost finished this system besides one thing - highlight itself.
To make it, I need to get position of each tagged symbol, and then compare it with raw string.
But IDK how I can get position of symbol. Is there any way to get it?

Example: I'm<b> a test bold</b> string - Will get converted into I'm a test bold string. Let’s assume that roblox filter turned it into: I'm a #### #### ######. Player who typed that message should see this instead: I'm<b> a <font color="#FF0000">test bold</font></b> <font color="#FF0000">string</font>, so RichText markups will work as intented. But cause Text filter don’t like RIchText, I send it text without them. But this arises a problem of mixing initial text with tagged one.