Some programmers avoid regexes in some situations (see this popular @nickf comment), perhaps using a parsing framework such as Lex/Yacc. Others prefer to stay within PHP, perhaps using regular expressions, as it avoids the need for another framework.
When must we use a "real" parser generator instead of coding a parser directly in PHP?
What is the best PHP tool-kit for parsing complex things and what factors can help me determine which is the best?
As I mentioned earlier, perhaps there is no best solution, but simply good practices to help select a solution.
NOTE
Read below only if you is a answer writer
My question was edited: now have good english and objectivity (!), thanks a lot for @FrustratedWithFormsDesigner, @gnat and @Matt. But, perhaps with @Matt editins, losted my point of view.
My point is not a "Regular expressions vs. framework" dichotomy (!).
I think (and see examples) that programming PHP, we have a good "tool kit", not only with regular expresions (see the power of preg_replace_callback), strings functions, etc., for simple or very specific parsing tasks; but also with XML Manipulation, for complex tasks! See de "parsing power" of process with DOM and/or XSLT...
I see also cases where I have a dilema about use this "PHP native tool kit", or install and learn about some external paser generator (plugged as a library, or a class, etc.).