trochę próbowałem pobawić się za pomocą wyrażeń regularnych aby mi sprawdzało przez preg_match poprawność wprowadzonego tekstu i jakoś mi nie wychodzi

Dlatego też prosiłbym aby ktoś napisał mi jak powinno wyglądać prawidłowe wyrażenie regularne które by przepuszczało jedynie tekst w którym znajdują się cyfry i litery oraz znaki "-" i "_", z tym że te znaki nie mogą się znajdować na początku, ani na samym końcu.
Oczywiście gdy w wyrażeniu znajduje się jakikolwiek inny znak to ma wywalać false ;]
Z góry wielkie dzięki za pomoc