次のような目的のような関数を作りたいのですが、
下記の場合複数のcsvファイルがあっても1つしか取得できません
ミスをご指摘いただけませんでしょうか。

// 書式: array dirflist_re ( string $directory, string $pattern );
// $directoryに存在するファイルから$patternで指定したパターンを含むファイルリストを取得する。
// $patternはデリミタで囲む必要はありません。

function dirflist_re($directory, $pattern ) {
  $flist = array();
  $pattern = '/' . $pattern . '/';
  $handle = opendir($directory);
  while ( ($f = readdir($handle)) !== FALSE ) {
    if( FALSE !== preg_match($pattern, $f)) {
       preg_match($pattern, $f, $flist);
    }
  }
  return($flist);
}

$f = dirflist_re('.','.+csv$');
print_r($f);