mac のfindはバグってる?

カレント以下で、拡張子が.cpp又は.hのファイルを見つけるには以下のようにする。

find . -type f \( -name \*.cpp -o -name \*.h \)

これは動くんだけど、-regexオプションでやろうとするとどうしてもできない。
例えば以下のようにしたらダメだった。

find . -type f -regex ".*[cpp|h]"

以下のような感じでいろいろやってみたがダメ。バグなのか?

find . -type f -regex '.*[\(\.cpp\)|\(\.h\)]$'