$re = '/(?P<file>^(?P<artist>[a-zA-Z0-9\'\.\s\(\)]*)\s\-\s(?P<title>[a-zA-Z0-9\'\.\s\(\)]*)\.(?P<format>mp3|m4a)$)/m';
$str = 'demon.devin - Instrumental (Deja Entendu Remix).mp3
demon.devin - deception.m4a';
$subst = "<li data-title=\"${title}\" data-artist=\"${artist}\" data-type=\"${format}\" data-url=\"http://www.example.com/music/${file}\" data-free=\"false\"></li>";
$result = preg_replace($re, $subst, $str);
echo "The result of the substitution is ".$result;
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