Because you are missing the ending delimiter which in your code is "/" so the regex should be
preg_match ( '/[0-9]+|[0-9]+ @ [0-9]+/', $s, $m);
a regex must have a starting and ending delimiter it could just as well be so long as you have a start and end with the same delimiter, one that is not likely to be used as part of the regex.
preg_match ( '#[0-9]+|[0-9]+ @ [0-9]+#', $s, $m);
BTW $m returns an indexed array you might want to rewrite the regex.