I know there are a lot of regex threads out there but I couldn't find anywhere.

I have a regex that work well with DD/MM/YYYY format.
Here it is: 

```
^((0?[13578]|1[02])[\/.]31[\/.][1-9][0-9]{3})|(([01,1]|0[3-9]|1[1-2])[\/.](29|30)[\/.][1-9][0-9]{3})|((0?[1-9]|1[0-2])[\/.](0?[1-9]|1[0-9]|2[0-8])[\/.][1-9][0-9]{3})|([02,2][\/.]29[\/.](([1-9][0-9](04|08|[2468][048]|[13579][26]))|([2468][0]{3})))$

```

**Example:** 29/2/2014,31/4/2014...

But when i was trying to validate with YYYY/MM/DD format, i had found this:

```
^(((19|20)([2468][048]|[13579][26]|0[48])|2000)[\/.]02[\/.]29|((19|20)[0-9]{2}[\/.](0?[469]|11)[\/.](0?[1-9]|[12][0-9]|30)|(19|20)[0-9]{2}[\/.](0?[13578]|1[02])[\/.](0?[1-9]|[12][0-9]|3[01])|(19|20)[0-9]{2}[\/.]02[\/.](0?[1-9]|1[0-9]|2[0-8])))$

```

This pattern just only works with YYYY from: 19xx -> 20xxx.

When i changed it, I expect it can work well with YYYY from: 1xxx ->9xxx. But it did not do well.

I'm new in regex, and it's hard to escape it.

Thanks a lot and sorry for my bad English.