Okay, different tack.
ExpressionEngine "input" stage refers only to PHP parsing.
It still only parses the expressions at output stage, so we'll make PHP output it and capture it back.
$string = "{system_details}";
ob_start();
echo $string;
$string = ob_get_contents();
ob_end_clean();
//$string = "Pistons, Cylinders, Collar Assemblies, Brace Assemblies, Crank Assemblies, Hooks and related hardware";
$array = preg_split("/[\s]*[,][\s]*/", $string);
print_r($array);