#!/usr/bin/perl -w use strict; print map {$_->[2]} sort {$b->[1] <=> $a->[1] || $a->[0] <=> $b->[0]} map {/(\d+).*?(\d+)/ ? [$1, !!$2, $_] : ()} ; 1; __DATA__ Colour Quantity 70 (Grey brown mix) 3 72 (Green mix) 10 74 (Fuschia mix) 8 76 (Mauve mix) 11 77 (Blue mix) 6 90 (Beige pink mix) 12 91 (Peach cream mix) 8 92 (Silver cream mix) 10 93 (Beige blue mix) 9 78 (Black white mix) 0 75 (Red mix) 0 73 (Aqua mix) 0 71 (Beige mix) 0