use strict; use warnings; my $text = "Heute ist der 31.1.2006 und meine IP 123.123.123.123 aber nicht 10.0.0.10 jedoch 31.02.2205 32.1.2207 31.13.2006 1.1.11 0.0.00 55.55.55\n"; my $datum = qr/ (?=\s)\s ( (?: [012]?[1-9] | [123][01] ) \. (?: 0?[1-9] | 1[012] ) \. (?: \d{2,4} ) ) (?=\s) /x; if ( my @results = $text =~ m/$datum/g ) { print "$_\n" for @results; }