$re = '/\s*(.{30}[^.]*\.|[^.]+$)/ms';
$str = 'The boy ate the apple. The sun is shining high in the sky. The answer to life the universe and everything is forty two, said the big computer.
The boy ate the apple. The sun is shining high in the sky. The answer to life the universe and everything is forty two, said the big computer. This is a test and this is a test
and this is a test.
This is
a test and then this is
a test again. Test ';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
// Print the entire match result
var_dump($matches);
Please keep in mind that these code samples are automatically generated and are not guaranteed to work. If you find any syntax errors, feel free to submit a bug report. For a full regex reference for PHP, please visit: http://php.net/manual/en/ref.pcre.php