すみません、質問させて下さい。
javascriptで 通常のdatを かちゅ〜しゃdatに変換するコンバータを作っています。
http://www.geocities.jp/mirrorhenkan/katu/
ある程度出来たのですが、2点ほどつまづいています

「>1-2」などがマッチした場合は
「<a href="http://hoge.com?bbs=hoge&st=1&to=2">&gt;1-2</a>」
と置換したいので

<script>
test = "これ&gt;1-2です そして&gt;10-20です あと&gt;200-300も";
test = test.replace(/(&gt;)(\d+)(-)(\d+)/g,"<a href=\"http:\/\/hoge.com?bbs=hoge&st=$2&to=$4\">$1$2$3$4</a>");
document.write(test);
</script>

という正規表現をjavascriptで組んでみたら
ちゃんと動作するのですが、
http://www.geocities.jp/mirrorhenkan/katu/
で同じようにやると、
数字が一桁づつの時は動作するのですが
「&gt;99-100」とか「&gt;100-200」等の時には
それぞれ
「〜st=9&to=9">&gt;9</a>9-100」
「〜st=10&to=10">&gt;10</a>0-200」
のようになってしまいます。
もし宜しければ正規表現のおかしい箇所を御指導頂けないでしょうか。
上記ページの該当部分はこちら↓です

line[3] = line[3].replace(/([^>\;]|^)(&gt;|&gt;&gt;|>|>>|≫)(\d+)(-)(\d+)([^<]|$)/g,"$1"+sp1+"$3"+sp2+"$5"+sp3+"$2$3$4$5<\/a>$6");

$3と$5に数字が格納され、URL部分は「sp1+"$3"+sp2+"$5"+sp3」になります。