I am trying to parse a string and extract all vowels and consonants
into two separate substrings. However, I can't get my solution to
work. Any pointers are appreciated. Here is the approach I am using:

1) Extended the String Class with the following methods:

class String
  def vowels
    self.scan(/[aeiou]|(?![aeiou])y(?![aeiou])/i)
  end

  def consonants
    self.scan(/![aeiou]|(?=[aeiou])y(?=[aeiou])/i)
  end
end

2) Invoke the methods:

test_paragraph = "Mary had a little lamb"
@vowel_sub_str = test_paragraph.vowels
@consonant_sub_str = test_paragraph.consonants

However, the result is just two empty strings. I believe the problem
is in the regular expression, but I can't figure out just where. Any
ideas/pointers are appreciated.

Thanks.