I got a Regex that validates my mail-addresses like this:
([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]
Why not just split on the semicolon and then validate each potential email address using your existing regexp ? Writing one huge regexp is going to be very difficult and a maintenance nightmare, I suspect.