c:\@Work\Perl\monks>perl -wMstrict -le "my $non_vowel = qr{ [^AEIOUaeiou] }xms; ;; my $s = 'aePDQioVWXua'; ;; print 'offset of first non-vowel: ', $s =~ m{ (?= $non_vowel) }xmsg ? pos($s) : 'none'; print 'offset of last non-vowel: ', $s =~ m{ .* (?= $non_vowel) }xmsg ? pos($s) : 'none'; ;; $s = 'aei'; print 'offset of first non-vowel: ', $s =~ m{ (?= $non_vowel) }xmsg ? pos($s) : 'none'; " offset of first non-vowel: 2 offset of last non-vowel: 9 offset of first non-vowel: none