Assuming Ruby 1.9:
result = subject.split(/(?<=[az])(?=[AZ])/)
This is the separation between lowercase letters and capital letter ASCII.
Insert spaces instead:
result = subject.gsub(/(?<=[az])(?=[AZ])/, ' ')
Look here:
irb(main):001:0> "LoremIpsumDolorSitAmet".gsub(/(?<=[az])(?=[AZ])/, ' ') => "Lorem Ipsum Dolor Sit Amet"
If there may be single uppercase letters, you need to slightly change your regular expression:
irb(main):003:0* "ThisIsAString".gsub(/(?<=[A-Za-z])(?=[AZ])/, ' ') => "This Is A String"
source share