I don't think you need the ^ and the $. Also, the puntuation mark is greedy.
This seems to work fine:
$a = ereg_replace("(<)([^>]+)(>)",'',$a);
Edit: This came slightly out the wrong way, with additional spaces behind < and >, like your post probably did too.