String1.scan(/<([^>]*)>/).last.first
scan
создает массив, который для каждого <item>
в String1
содержит текст между <
и >
в массиве из одного элемента (поскольку при использовании с регулярным выражением, содержащим группы захвата, scan создает массив, содержащий записи для каждого совпадения). last
дает вам последний из этих массивов, а first
затем дает вам строку в нем.