Проблема в том, что вы указываете, что конец строки ($) должен следовать сразу после года.Если вы удалите это условие, вы сможете получить дату из строки.Также вы отлавливаете компоненты отдельно, поэтому вы не получите дату в виде одной строки.Кроме того, вам нужно избегать периодов, если вы хотите, чтобы они соответствовали только периодам, иначе они будут соответствовать любому символу:
^([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{4,4})
или просто:
^(\d{1,2}\.\d{1,2}\.\d{4})