Google wasn't finding me what was obviously a simple one-liner in perl, so here's how to sort a list of records marked by stars and separated by some string (a $ in this example) in reverse order:
perl -e '$/="\$\n"; print sort {$b cmp $a} grep(/^\*/, <>);'
I used this to sort a list such as:
This is boring
Description of boring stuff.
$
* This is interesting
Description of interesting stuff.
$
** This is very interesting
Description of very interesting stuff.
$
etc.
Explanation:
$/="\$";
set record separator
print sort {$b cmp $a} grep(/\*/, <>);
read file (<>), create array of lines with stars (grep), sort in reverse (sort {$b cmp $a}), print resulting array
You can be creative with the record separator, grep pattern, sort function, etc.