Возможно, нет ни одного аккуратного регулярного выражения, на которое вы могли бы надеяться:
s = '{\"exclude\"=>[4, 5, 6, 10], \"include\"=>[]}'
all_numbers = s[/\[[\d,\s]+\]/]
# => "[4, 5, 6, 10]"
all_numbers.scan(/\d+/).map { |m| m.to_i }
# => [4, 5, 6, 10]
# Depends how much you trust the regex that grabs the result for all_numbers.
eval(all_numbers)
# => [4, 5, 6, 10]
# As a one-liner.
s[/\[[\d,\s]+\]/].scan(/\d+/).map { |m| m.to_i } # => [4, 5, 6, 10]