Мне кажется - надо написать конечный автомат. Например, при появлении символа <
- он переходит в состояние "внутри тэга", их которого он выйдет по символу >
. Но внутри символа тэга - бывают строки (вход - по апострофу или кавычке; выход -= по такому же символу).
При определённых условиях - происходит завершение чтения определённого элемента (слова или тега) и переход к следующему.
Регулярка здесь не годится, ибо в каждом состоянии - свои ключевые элементы, по которым совершаются действия.
Кстати, у Вас не определено, что делать, если в тексте несколько пробелов.