Если вам нужны все данные, вы можете сначала поместить их в хеш.
my %data = $str =~ /\[([^,]+),([^\]]+)\]/g;
use List::Util qw'max';
my($max) = max(values %data);
print "max: $max\n";
Если вы хотите узнать, какие ключи имеют этот номер, вы можете использовать grep
print "key: $_\n" for grep { $data{$_} == $max } keys %data;
Если вам действительно нужно только максимальное значение:
use List::Util qw'max';
print max $str =~ /\[[^,]+,([^\]]+)\]/g;