$re = '/KW[^a-zA-Z1-9]*([1-9]+\d*).*\d+\.\d+\.(\d+).*/i';
$str = 'KW-7%C2%AD_12.02.-16.02.2018.pdf
KW-8_12.02.-16.02.2018.pdf
KW-03_12.02.-16.2.2018.pdf
KW-43_12.2.-06.02.2018.pdf
KW-43_12.2.2017-06.02.2018.pdf
KW-43_12.2.2017-06.02.2018-extra.pdf';
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