BBparser simples em PHP que permite substituir o conteúdo fora das tags

Estou tentando analisar seqüências de caracteres que representam o código fonte, algo como isto:

[code lang="html"]
  <div>stuff</div>
[/code]
<div>stuff</div>

omo você pode ver nas minhas 20 perguntas anteriores, tentei fazê-lo com as funções regex do PHP, mas tive muitos problemas, especialmente quando a string é muito grande .

Vocês conhecem uma classe de analisador de BB escrita em PHP que eu posso usar para isso, em vez de expressões regulare

O que eu preciso fazer é:

poder converter todo o conteúdo de dentro de[code] tags com entidades html conseguir executar algum tipo de filtro (uma função de retorno de chamada) apenas em conteúdo fora do[code] Ta

obrigad

edit: Acabei usando isso:

converter tudo<pre> e<code> tags para [pré] e [código]:

str_replace(array('<pre>', '</pre>', '<code>', '</code>'), array('[pre]', '[/pre]', '[code]', '[/code]'), $content);

get conteúdo entre [code] .. [/ code] e [pre] ... [/ pre] e faça a conversão de entidade html

preg_replace_callback('/(.?)\[(pre|code)\b(.*?)(?:(\/))?\](?:(.+?)\[\/\2\])?(.?)/s', 'self::specialchars', $content);

(roubei esse padrão das funções de shortcode do wordpress:)

armazene o conteúdo convertido da entidade em uma variável de matriz temporária e substitua a de$content com um ID exclusivo

Agora posso executar meu filtro com segurança em$content, porque não há código, apenas o ID (esse filtro faz uma strip_tags em todo o texto e converte coisas comohttp://blabla.com para links)

substitua os IDs únicos de$content com os blocos de código convertidos da variável da matriz

você acha que está tudo bem?

questionAnswers(2)

yourAnswerToTheQuestion