単純な字句ソートでは提供されない、あなたが何を望んでいるのかわかりません。以下のプログラムは、あなたが指定したことを行うようです。
use strict;
use warnings;
my @strings = (
"PQR23 on abc62",
"PQR112 on efg7",
"PQR9 on efg76",
);
print "$_\n" for sort @strings;
出力
PQR112 on efg7
PQR23 on abc62
PQR9 on efg76
編集
プレフィックス文字を無視したい場合は、並べ替えのコード ブロックでうまくいきます
use strict;
use warnings;
my @strings = (
"ABC23 on abc62",
"PQR112 on efg7",
"XYZ9 on efg76",
);
print "$_\n" for sort {
my ($aa) = $a =~ /(\d)/;
my ($bb) = $b =~ /(\d)/;
$aa cmp $bb;
} @strings;
出力
PQR112 on efg7
ABC23 on abc62
XYZ9 on efg76