in reply to Question about conditional regex capture

You are on th right track. Gropuing lets you have alternatives
if ( /.*(\d+\.\d+\.(\d\d+|[4-9])\.\d+).*/ ) { print "$1 <br> \n"; }
This matches either a multidigit number or a single digit in 4..9. Note it could still be fooled by 01, etc, so check your input for that problem.

-Mark