Regexes são gananciosos. Eles vão combinar a primeira coisa que puderem. (|a|b)
sempre corresponderá a uma string nula.
Da mesma forma, (\d{7}|\d{7}-\d{7})
sempre corresponderá apenas a \d{7}
(ou não corresponderá a todos). Nunca irá para a segunda opção.
O que você deseja é (\d{7}-\d{7}|\d{7})
. Mas por que ser tão detalhado?
\d{7}(-\d{7})?
funcionará bem.
Então você tem:
Range_\d{7}(-\d{7})?