山本です。

> findと比べてみると、今の1.9はfind -depth相当ですが、1.8はちょっ
> と独自の順序です。どちらかというと、1.8の順序に戻すよりもfindの
> デフォルトができたほうがいいように思うんですが。

デフォルト == find のデフォルト(-depth == find の -depth)
にすべきということですか?

>というか、それは意味が違うのでは。例えば
>
>  hoge/foo.c
>  hoge/foo_c
>  hoge/foo/c
>
>があったとき、'hoge/**/*c'の結果は1.8、1.9、sortですべて別です。

sortでは

hoge/foo.c
hoge/foo/c
hoge/foo_c

と、ファイルとサブディレクトリが前後して気持ち悪いですが、
ディレクトリ本体がサブディレクトリより前に実行される
という条件は満たしていると思います。

String#countがマルチバイト対応なら

Dir.glob('hoge/**/*c').sort {|a,b| a.count('/') <=> b.count('/')}

で良さそうなんですけど。正規表現で同じことができるかはちょっとわかりません。