正規表現でうるう年判定付きの日付を表す

http://d.hatena.ne.jp/kurip/searchdiary?word=*%5B%C0%B5%B5%AC%C9%BD%B8%BD%5D


^(?!([02468][1235679]|[13579][01345789])000229)(
([0-9]{4}(01|03|05|07|08|10|12)(0[1-9]|[12][0-9]|3[01]))|
([0-9]{4}(04|06|11)(0[1-9]|[12][0-9]|30))|
([0-9]{4}02(0[1-9]|1[0-9]|2[0-8]))|
([0-9]{2}(([02468])[048]|[13579][26])0229))$または、

^(?:\d{4}/(?:(?:0?[1-9]|1[0-2])/(?:0?[1-9]|1[0-9]|2[0-8])|
(?:0?[13-9]|1[0-2])/(?:29|30)|(?:0?[13578]|1[02])/31)|
(?:\d{2}(?:0[48]|[2468][048]|[13579][26])|
(?:[02468][048]|[13579][26])00)/0?2/29)$
凄い。凄いけど、こんな長いの使ってられるか!
凄いけど、これってバッド・ノウハウなんじゃないだろうか。うん、どうしてもバッドノウハウが必要になる場面があることも分かるけどさ。