# why use a regex? splitting is enough while ( ) { print $_ if ( (split( /\./ ))[2] > 3 ); } __DATA__ 0.1.1.1 0.1.2.2 0.1.3.3 0.1.10.1 0.1.20.2 0.1.30.3