Estaba por repetir lo que te dice Pate... lo que pasa es que estas colocando un RANGO en tu expresion al decir [2-5]... deberia ser algo asi:
/^[2|5]{1}[5]{1}$/ Código PHP:
<?php
$test = range(0, 99);
$regex = '/^[2|5]{1}[5]{1}$/';
foreach ($test as $num) {
if (preg_match($regex, $num)) {
echo "=> $num PASS!\n";
}
}
Salida:
Con [2|5] estas diciendo "2" o "5"