The change to html.parser.tagfind in ba4baaddac8d is causing third-party code (Django) to fail. See http://mail.python.org/pipermail/python-dev/2012-April/119074.html for more information. Other patterns which changed (e.g. attrfind_tolerant) might also lead to problems. As suggested in the python-dev thread, private versions of these patterns should be used and the existing public ones deprecated, where appropriate.
The module only defines 2 public objects: HTMLParser and HTMLParseError. The attached patch adds an __all__ with only HTMLParser. Should HTMLParseError be included too, even though it's deprecated and will be removed in 3.5? @Michele: __all__ won't fix that, but at least it will make clear that the module-level regex (like tagfind) are not public. Renaming the methods is not a good idea IMHO, we could move the "# internal" comments in the docstrings though.
I think, HTMLParseError should also be defined __all__ (all also servers as what public classes/methods to look for sometimes and sets some expectation while reading the code.) There is no deprecation warning added in the class here.