ciao ... non capisco come mai non funzionino correttamente queste espressioni regolari...

Codice PHP:
function numeri($var){
    
$result ereg("^[0-9]+$",$var);
    if (
$result == false){
        return 
false;
    }else{
        return 
true;
    }

con questa non mi effettua il controllo , mentre se l'espressiona la scrivessi cosi :

"(^[0-9])+$"

mi restituisce un valore, che è l'opposto di ciò che desidero...

esempio :
se $var="123456789" e la mia espressione "(^[0-9])+$"
$result dovrebbe rrestituire true... perchè $var soddisfa la mia espressione. invece torna false.

a questo punto potrei anche invertire i miei valori ma vorrei capire perchè ho dovuto mettere le () e perhcè torna false al posto di true.

in più questa espresione lo copiata pari pari da un js che avevo creato e funziona alla grande.
ci sono differenze nel dichiarare in js e in php?


grazie