$re = '/^(?!15).*/m';
$str = '13
13.1
13.1.1
13.1.2
13.1.2
13.1.3
13.2
13.2.1
13.2.2
13.2.3
13.3
13.3.1
13.4
13.4
13.4.1
13.4.1
13.5
13.5.1
13.6
13.6.1
13.7
14
14.0.1
14.1
14.2
14.2
14.2.1
14.3
14.4
14.4.1
14.4.2
14.5
14.5.1
14.6 Beta 3
14.6 RC
14.6 RC 2
14.6
14.7 Beta 1
14.7 Beta 2
14.7 Beta 3
14.7 Beta 4
14.7 Beta 5
14.7 RC
14.7
14.7.1
14.8
14.8.1
15.0 Beta 1
15.0 Beta 2
15.0 Beta 2
15.0 Beta 3
15.0 Beta 4
15.0 Beta 5
15.0 Beta 6
15.0 Beta 7
15.0 Beta 8
15.0 RC
15
15.1 Beta 1
15.1 Beta 2
15.0.1
15.1 Beta 3
15.0.2
15.1 Beta 4
15.1 RC 1
15.1 RC 2
15.1
15.2 Beta 1
15.2 Beta 2
15.2 Beta 3
15.1.1
15.2 Beta 4
15.2 RC
15.2 RC 2
15.2
15.3 Beta 1
15.2.1
15.3 Beta 2
15.3 RC
15.3
15.4 Beta 1
15.4 Beta 2
15.3.1
15.4 Beta 3
15.4 Beta 4
15.4 Beta 5
15.4 RC
15.4
15.4.1
15.5 Beta 1
15.5 Beta 2
15.5 Beta 3
15.5 Beta 4
15.5 RC
15.5
15.6 Beta 1
15.6 Beta 2
15.6 Beta 3
15.6 Beta 4
15.6 Beta 5
15.6 RC
15.6 RC 2
15.6
15.6.1
15.7 RC
15.7
15.7.1 RC
15.7.1
15.7.2 RC
16.0 Beta 1
16.0 Beta 2
16.0 Beta 3
16.0 Beta 3
16.0 Public Beta 1
16.0 Beta 4
16.0 Public Beta 2
16.0 Beta 5
16.0 Public Beta 3
16.0 Beta 6
16.0 Public Beta 4
16.0 Beta 7
16.0 Public Beta 5
16.0 Beta 8
16.0 Public Beta 6
16.0 RC
16
16.1 Beta 1
16.0.1
16.1 Public Beta 1
16.1 Beta 2
16.1 Public Beta 2
16.0.2
16.1 Beta 3
16.1 Public Beta 3
16.1 Beta 4
16.1 Public Beta 4
16.0.3
16.1 Beta 5
16.1 Public Beta 5
16.1 RC
16.1
16.2 Beta 1
16.2 Public Beta 1
16.2 Beta 2
16.1.1
16.2 Public Beta 2
16.2 Beta 3
16.2 Public Beta 3
16.2 (a)
16.2 (b)
16.1.2
16.2 Beta 4
16.2 RC';
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