in reply to substring/regex question

Update: I may have misread your question. I missed the one little word in your description that changes the whole premise: "sort". I now believe you actually want to print the input file sorted on the 3rd column, not just print the 3rd column. I'd use the Schwartzian Transform for a pure-Perl solution:

print for map { pop @$_ } sort { $a->[0] <=> $b->[0] } map { [ (split /,/)[3], $_ ] } <>;

Of course, the following non-Perl solution works just as well on your UNIX-ish OS:

sort -t, -k4 -n <trace.csv >rgextract.txt
#!/opt/local/bin/perl -w

It appears you're on OS X or other UNIX-ish OS, so given this, and the apparent regularity of your data, I'd probably use the following one-liner:

perl -F, -anE 'say $F[3]' <trace.csv >rgextract.txt

See perlrun for information on the switches used, but basically:

-F, Autosplit delimiter is ',' -a Enable autosplit fields into @F -n Assume while (<>) { ... } around program -E Eval one-line program with optional features (i.e., 'say', in this case)
use strict; use warnings; omitted for brevity.