This is not a good way to try to separate items. as has been said multiple time, save yourself the headache and use delimiters, That being said, this returns desied results from given string.
$my_string = "New video gameSome TV showAnother item";
preg_match_all('/[A-Z]{1}([A-Z]{2,5}|[a-z\s])+/',$my_string, $matches);
var_dump($matches);
But i'm sure you'll find more cases this doesn't work if you keep using patterns that don't make sense.
[A-Z]{1} - find one uppercase letter
()+ - next pattern one or more times
[A-Z]{2,5}|a-z\s - 2 -5 uppercase letters(for acronyms) OR lowercase letters and spaces
This does what you ask here. Good luck not breaking it.
var dump looks like - never mind the second part.
array(2) { [0]=> array(3) { [0]=> string(14) "New video game" [1]=> string(12) "Some TV show" [2]=> string(12) "Another item" } [1]=> array(3) { [0]=> string(1) "e" [1]=> string(1) "w" [2]=> string(1) "m" } }