I guess this one works based on your examples.
$pattern = '/^[0-9_\-\+\(\)\ ]+$/';
$val = '014-455464564';
if (preg_match($pattern, $val))
echo $val.' TRUE<br />';
else
echo $val.' FALSE<br />';
$val = '+6054-4554';
if (preg_match($pattern, $val))
echo $val.' TRUE<br />';
else
echo $val.' FALSE<br />';
$val = '(+60)-4554';
if (preg_match($pattern, $val))
echo $val.' TRUE<br />';
else
echo $val.' FALSE<br />';
$val = '(+60)-4554-sss';
if (preg_match($pattern, $val))
echo $val.' TRUE<br />';
else
echo $val.' FALSE<br />';
$val = '(+60)-4 554';
if (preg_match($pattern, $val))
echo $val.' TRUE<br />';
else
echo $val.' FALSE<br />';
Also you may want to check http://regexlib.com