gsub заменить

split разбить по регулярке, регулярка под разделитель

p s.split(/\s/)  #["мама", "мыла", "раму"]

scan разбить по регулярке, под разбиваемое пишем регулярку

p s.scan(/[[:word:]]+/)  #["мама", "мыла", "раму"]

как я понял извлекает последний элемент, а вообще используется в работе с диапазонами

s="мама2 мыла раму мама1"
p s.slice(/.{1,2}ма[0-9]{1}/)         # "мама2"

p s.scan(/[[:word:]]+/)  #["мама", "мыла", "раму"]

match возвращает первое вхождение в шаблон

    
p 'Мама мыла раму'.match(/Папа/)    #nil
p test='Мама мыла раму'.match(/Мама/) #<MatchData "Мама">
p test[0]  #"Мама"

а можно вот так, конечно меня такое путает, но надо знать

s="мама мыла раму"
p s[/.{1,2}ма/]         # "мама"

первое и второе дают аналогичный результат

p test='Мама мыла раму' =~ /мыла/ # 5
p /мыла/ =~ 'Мама мыла раму' # 5
p test='Мама мыла раму'.index(/мыла/) # 5