Use the built-in be_between matcher.
Use all(be_between()) and all(be_kind_of())