class Capybara::Selector::RegexpDisassembler

def combine(strs)

def combine(strs)
  suffixes = [[]]
  strs.reverse_each do |str|
    if str.is_a? Set
      prefixes = str.flat_map { |s| combine(s) }
      suffixes = prefixes.product(suffixes).map { |pair| pair.flatten(1) }
    else
      suffixes.each { |arr| arr.unshift str }
    end
  end
  suffixes
end