$d = '&1&&2&&3&&4&&5&&6&&7&';
のように、「&[^&]&」という値の組み合わせが羅列されている文字列から
preg_replaceを使って、「&1&&2&&3&&4&&5&」のように先頭から最大で5組の
値を取り出すにはどのようにすればいいでしょうか。

私の試したコード(これではダメでした)
$d = preg_replace('((?:(?:&[^&]&){1}?){,5}?)', '\1', $d);