В зависимости от ваших потребностей, это может работать лучше:
> foo = "AAABBCDEEFF"
=> "AAABBCDEEFF"
> foo.scan(/.{1,2}/)
=> ["AA", "AB", "BC", "DE", "EF", "F"]
Не уверен, как выглядит ваш вклад. Приведенный выше ответ удалит любые символы, у которых нет пары, этот будет работать со строками нечетной длины.