<span class="i">内のspanの個数が決まっているのでしたら、次のようにするとマッチする正規表現になります。
#<span class="i">(.*?</span>){5}#s
<span class="i">の中の要素数が定まっていない場合、別の条件が必要になりますが、質問で提示している部分の直後に何か判定に使えるような記述はないのでしょうか?
あるいは、<span class="i">の中に、他に何か決まった要素はないでしょうか?
何もない場合は正規表現は適さないので、きちんと構造化されたHTMLなのでしたら、XPathを利用した方がいいと思います。
XPathを利用するライブラリもいくつかあるようです。
・PHPでのスクレイピングに役立つライブラリ色々
http://phpspot.org/blog/archives/2008/03/php_94.html
リンク先情報元(PHPでのスクレイピングに役立つライブラリ - (DxD)∞)より
HTMLScraping
HTMLをXML化してDOMやXPathで操作できるクラス。主にHTTP_Request+HTMLParser(XML_HTMLSax3を含む)/Tidy+Cache_Liteという構成で、スクレイピングに必要なものが一通り揃っている。ライセンスはLGPL他。
WebScraper
シンプルな汎用スクレイピングクラス。HTTP_Client+HTMLParser(XML_HTMLSax3を含む)という構成で、XPathで要素を抽出できる。自分好みにカスタマイズするのに最適。ライセンスは修正BSDライセンス他。