URIで二階層以下を表す正規表現

試行錯誤してようやくできたんだけど、きっと後で見てわけがわからなくなるだろうから今のうちにメモ。
apacheのLocationMatchで使う。

^/[^/]*/?([^/]+)?/?$

まず先頭がスラッシュで始まっていて、(^/)
次にスラッシュ以外の文字列が0個以上つづく。
ここまでで、

/
/index.html
/hogefuga

などなどがマッチ。

その次に / はあってもなくてもいい。(/?)
これで
/hogefuga/

がマッチする。

さらに1個以上の/以外の文字列がはあってもなくてもいい。(([^/]+)?)
これで
/hogefuga/foobaa

がマッチする。
更に最後に/はあってもなくてもいい。(/?)
これで
/hogefuga/foobaa/もマッチする。

?をみっつつなげているのがミソ。