$re = '/^[\(|\{\)\}\[\]\s]*(?:\w[\(|\{\)\}\[\]\s]*){1,30}$/m';
$str = 'abcdefghijklmnopqrstuvwxyz1234
abcdefghijklmnopqrstuvwxyz1234567890
(abcdefghijklmnopqrstuvwxyz1234)
{abcdefghijklmnopqrstuvwxyz1234)
{abcdefghijklmnopqrstuvwxyz1234}
(abcdefghijklmnopqrstuvwxyz1234}
abcdefgh(ijklmnopqrs)tuvwxyz1234
abc{defgh(ijklmnopqrs)tuvw}xyz1234
abcdefghijk(){}lmnopqrstuvwxyz1234
a}bcdef[ghijkl(mno)pqrstuvwx]yz12{34
text text {text} text';
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