Come ottengo i dati della partita per tutte le occorrenze di un’espressione regolare Ruby in una stringa?

Ho bisogno del MatchData per ogni occorrenza di un’espressione regolare in una stringa. Questo è diverso dal metodo di scansione suggerito in Corrispondenza di tutte le occorrenze di un Regex , dal momento che mi fornisce solo una serie di stringhe (ho bisogno del MatchData completo, per ottenere informazioni di inizio e fine, ecc.).

 input = "abc12def34ghijklmno567pqrs" numbers = /\d+/ numbers.match input # # (only the first match) input.scan numbers # ["12", "34", "567"] (all matches, but only the strings) 

Sospetto che ci sia qualche metodo che ho trascurato. Suggerimenti?