data regex

//all types, only number

^(?:(?:31(\/|-|\.)(?:0?[13578]|1[02]))\1|(?:(?:29|30)(\/|-|\.)(?:0?[1,3-9]|1[0-2])\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)0?2\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$|(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:(?:0?[1-9])|(?:1[0-2]))\5(?:0?[1-9]|1\d|2[0-8])$|^(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)0?2\6(29)$|^(?:(?:1[6-9]|[2-9]\d)?\d{2})(?:(?:(\/|-|\.)(?:0?[1,3-9]|1[0-2])\8(?:29|30))|(?:(\/|-|\.)(?:0?[13578]|1[02])\9(?:31)))$

//all types month = text (pt)

^(?:(?:31(\/|-|\.)(?:jan|mar|mai|jul|ago|out|dez))\1|(?:(?:29|30)(\/|-|\.)(?:(?:jan|mar|abr|mai|jun|jul|ago|set|out|nov|dez)\2)))(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:29(\/|-|\.)(?:fev)\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))$|^(?:0?[1-9]|1\d|2[0-8])(\/|-|\.)(?:jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)\4(?:(?:1[6-9]|[2-9]\d)?\d{2})$|^(?:(?:1[6-9]|[2-9]\d)?\d{2})(\/|-|\.)(?:jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)\5(?:0?[1-9]|1\d|2[0-8])$|^(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00)))(\/|-|\.)(?:fev)\6(29)$|^(?:(?:1[6-9]|[2-9]\d)?\d{2})(?:(\/|-|\.)(?:(?:jan|mar|abr|mai|jun|jul|ago|set|out|nov|dez)\8(?:29|30))|(?:(\/|-|\.)(?:jan|mar|mai|jul|ago|out|dez)\9(?:31)))$
Plain Puma