According to the FAQ on allowed HTML, double quotes are required:
You must enter the tags exactly as shown. Any deviation from this list—adding extra spaces, using single quote or no quotes, etc.—means the tag will be stripped.
However, that's not quite how HTML hyperlinks are supposed to be stripped when they are invalid. That behavior is another side-affect of balpha's changes to the hyperlink regex which now auto-linkifies things even when immediately surrounded by other characters.
Currently, the regex only looks for an equals sign followed by a double quotation (
=") as a preceding character set. Since a single quote is not, the entire link gets automatically linkified like so:
which produces this HTML:
<a href='<a href="http://foo.com">http://foo.com</a>'>foo</a>
which for some reason, when added to the post directly, actually creates a link followed by the
'>foo, but in reality should create the result you're getting. When the check runs to remove invalid HTML, the main components of it are removed:
<a href='<a href="http://foo.com">http://foo.com </a>'>foo </a>
and you are left with: