my @comments = ( '# Version: 1.11', '* Version: 1.11', 'Version: 1.11', '/* Version: 1.11', ); foreach(@comments) { print m<^ (?: \# | /? \* )? \s* version: \s+ (\d+ (?:\.\d+)+ ) >ix,$/; } __output__ 1.11 1.11 1.11 1.11