Dovresti fare l'escape per i numeri e il punto

Codice PHP:
preg_match('/^(\\+|-)(\\d{1,3})\\.(\\d)$/'$temp);