Catalyst::Request#pathの値に、LocationMatchでマッチした文字列がくっつく

以前からこうなっていたのか記憶が定かではありませんが、
Catalystアプリケーションの
http://localhost:3000/test
にアクセスしたら、sub test内で

$c->req->path

を見ると

/%5E/[%5E%5C.]*(%5C?|%24)/test

になってしまっていました。これにはビックリΣヽ(゚Д゚; )ノ

この時、Apacheの設定は以下のように「パスに.(ドット)を含まないもの」をCatalystアプリケーションに飛ばすようにしていました。

<LocationMatch "^/[^\.]*(\?|$)">
    SetHandler          modperl
    PerlResponseHandler MyApp
</LocationMatch>

この正規表現がプログラム側に渡ってしまっているようです。

(?:)で括ったら消えるかなと思ってやってみましたが何も変わらず。。。

仕方が無いので条件を逆転させることにしました。

<Location "/">
    SetHandler          modperl
    PerlResponseHandler Perlyst
</Location>

<LocationMatch "^/[^\?]+\..*">
    SetHandler default-handler
</LocationMatch>

LocationMatchの条件が間違っていたので修正
ひとまずこれで

$c->req->path

/test

を返すようにはなりました。

今あまり時間が無いので原因を詳しく調べることができません。ので、識者の方々の情報をお待ちしておりますm(_ _)m
追記
頂いたコメントを元に続きを書きました。
Catalyst::Request#pathの値に、LocationMatchでマッチした文字列がくっつく(2) - ヒルズで働く@robarioの技ログ