Вы захватываете знак минус, который используется для разделения.Поэтому оно удалено.
Два возможных решения:
а) добавить его ко второму совпадению, потому что оно должно быть там, иначе разделение не вернет этот результат б) вместо этого попробуйте (\S*) (\S.*)
и сделайте совпадение,Это вернет два результата, "x" и "-y".
Если функция разбиения такая простая, рассмотрите возможность использования функции разбиения строки.Это намного быстрее, чем регулярное выражение.
var result = "x -y".split(" -");
if (result.length == 2) result[1] = "-" + result[1];
http://gskinner.com/RegExr/ это хороший сайт для проверки ваших регулярных выражений.Если вы сравните свое регулярное выражение с Говардсом, вы увидите разницу.Если ты возьмешь мой и тоже подойдешь.