Hola,
Además de eso, el $capa++ debe ir en el segundo, y no en el primero, quedaría así:
$capa = 1;
$texto = eregi_replace("\\[spoiler\\](.*)\\[/spoiler\\]", '<input type="submit" onclick="capa('.$capa.')" value="Contenido Oculto">
<div id="capa'.$capa++.'" style="border:solid #6699FF 1px;background:#B2E0F0; width:480px; display:none;">
\\1
</div>', $texto);
Así ya se abrirá, pero solo el primero.
El problema es que el ereg coge el tag [spoiler] del primer spoiler, y el tag [/spoiler] del segundo, y mientras entre esos dos deja todo lo demás, no se si me entendéis.
El problema esta en la expresión regular \\[spoiler\\](.*)\\[/spoiler\\], pero no se como solucionarlo, ahora lo voy a investigar un poco y luego si averiguo algo os digo.
Saludos