To put an end to the picking of nits, you will not get two <p>'s under Win32 because the file has not been opened binmode. This means the OS will strip the \r line terminators for you. Also, the correct order for matching in binmode is \r\n, not the other way around.
That may be true in general, but the idea is to take the CRLF sequence in Unix (\n) and the CRLF sequence in Windows (\n\r) and replace either of them with <p>. To do that, one regex is simpler than two.