@AndersonCarlosWoss a solução pra mim ao menos, seria separar as opções a,b,c,d,e da pergunta
pt.stackoverflow.com/q/301862/3635 e ainda quer suporte a HTML, o AP quer misturar tudo e resolver a trancos e barrancos com regex, se isto esta vindo de um banco o problema é quem modelou este banco :P