Dont see why you're trying to do fancy stuff, given the very easy sample set, it might be worth just using the simplest case:
Code:
Find : <i\b[^<>]*>([^“]*)“([^”]+)”([^“”]*)</i>
Replace : \1“<i>\2</i>”\3
Just grep first to be safe, it will eat homework.