Я согласен с комментарием tgolisch и попробую следующее:
Dim htmlStr = "<html><body>" & bbStr.Replace("<","<") _
.Replace(">",">") _
.Replace("[","<") _
.Replace("]",">") & "</body></html>"
htmlStr теперь содержит блок типа html, и вы можете посмотреть на его синтаксический анализ с помощью html agility pack, парсера для html, допускающий плохо сформированный html - bbcode предназначен для псевдо html и не гарантирует правильного формирования. XML вполне может подавиться вашим bbcode. HAP поддерживает настраиваемые теги, которые, насколько мне известно, не являются стандартными html. Он все время обращается к тегам как к нижнему регистру, поэтому, если некоторые из ваших тегов имеют верхний или смешанный регистр, вы должны использовать нижний регистр при построении выражений xpath для извлечения данных