Salve a tutti, sto sviluppando un form di inserimento dati e ho notevoli ( a dir poco ) problemi con la validazione di un campo di input!

La richiesta è semplice: il campo rappresenta un modello di un oggetto, e deve poter contenere caratteri alfanumerici, trattini ( - ), underscore ( _ ) e spazi; il controllo sulla presenza o meno di questi caratteri è effettuato con l'istruzione
Codice PHP:
!empty($fields[$field_name]) && !preg_match($reg_exp$fields[$field_name]) 
dove $field è il campo del form e $reg_exp è l'espressione regolare da utilizzare per il controllo.

Attualmente ho scritto questa espressione
codice:
[A-Za-z0-9_\s\-]
che però non sembra funzionare...

Come posso risolvere? Dove sto sbagliando??