$re = '/8[^\d]*+8[^\d]*+8[^\d]*+9[^\d]*+5[^\d]*+9[^\d]*+2(?:[^\d]|0)*+1[^\d]*+1/mi';
$str = '-888x(959)x2O11
88 8~(959) <2O><11>
8889592011
8;?889592011
888 ^9 <5> 9 2 <O>11
8abc8[8];\',. 9 **5 92011
';
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