my @compounds=("C3H8O2", "C6H10O5", "C36H62O31", "C5H16N2", "C10H11N5O6P", "C9H11N3O7P", "C3H9N2O2"); print join("\n", sort{($a =~ /C(\d*)/)[0] <=> ($b =~ /C(\d*)/)[0]} grep { $_ =~ /P/} @compounds),"\n";