re = /^Ответ: ((.|\n)+?)\n([0-9\n])/m
str = 'Тема 1: Стихийные бедствия.
Автор: Булат Фаттахов
10. Таким женским именем звали ураган, сильно повредивший Новый Орлеан.
Ответ: Катрина.
20. "Дождь лил четыре года, одиннадцать месяцев и два дня" именно там.
Ответ: в Макондо.
30. В 1883 году было извержение вулкана именно на этом острове.
Ответ: Кракатау (Остров назывался так же как и вулкан).
40. Армянские города Гюмри и Ванадзор, сильно пострадавшие во время землетрясения 1988 года, в советское время носили такие названия.
Ответ: Ленинакан и Кировокан.
50. Крупнейшее за всю историю человечества это стихийное бедствие произошло в 1875 году в США, а не в Египте двумя тысячами годами ранее.
Ответ: Нашествие саранчи.
Тема 2: Города России.
Автор: Булат Фаттахов
10. Это крупнейший город России после Москвы.
Ответ: Санкт-Петербург.
20. Москва крупнейший город России, а Тольятти тоже крупнейший город в России среди таких.
Ответ: Не являющийся столицей региона.
30. Это - крупнейший город самого большого острова России.
Ответ: Южно-Сахалинск.
40. Именно в этом городе происходит действие сериала "Счастливы вместе".
Ответ: Екатеринбург.
50. А именно этот город является самым западным городом России.
Ответ: Балтийск.'
subst = 'Ответ: <details>\\1</details>\\n$3'
result = str.gsub(re, subst)
# Print the result of the substitution
puts result
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for Ruby, please visit: http://ruby-doc.org/core-2.2.0/Regexp.html