Filename interpreter for TV shows
This seems quite fine. I can only nitpick.

Here, either the comment is wrong or you have a bug,
as the command will remove underscore instead of replacing with space:


// replace underscore "_" with space " "
$step = str_replace('_', '', $step);



Many of the expressions have unnecessary elements:


The /i flag in expressions that don't include case sensitive pattern
The grouping within (...) in expressions that don't use the capture group
\\ instead of a simple \


For example these can be simplified:


$step = preg_replace("/(\\[.*?\\])/is", '', $step);
$step = preg_replace("/(\\(.*\\))/is", '', $step);
$c = preg_match_all("/(\\d+)/is", $string, $matches);



To this:

$step = preg_replace("/\[.*?\]/s", '', $step);
$step = preg_replace("/\(.*\)/s", '', $step);
$c = preg_match_all("/\d+/s", $string, $matches);


I would add one more operation to remove spaces in front of dots:

$step = preg_replace('/ +\./', '.', $step);