下から3行目を
?)(\s*(\n|<br>)?\s*(\n|<br>)?\s*[^\w][^\n<]*(\n|<br>)\s*(\n|<br>)\s*http://[^\n<\s]*[\s\w\,\.\[\-]*)?

?)(\s*(\n|<br>)?\s*(\n|<br>)?\s*[^\w][^\n<]*((\n|<br>)\s*(\n|<br>)\s*http://[^\n<\s]*[\s\w\,\.\[\-]*)?)?

で、対応は出来るけど、誤爆が増えてしまう気がする
せめて同時に4行目の先頭の?https?:を?http:として
httpsは除外した方がいいかも


あるいは、別途この上下逆の2行の形式だけに対応する正規表現を作るか