Regex solution if it's not fixed length:
$partno ='USG2-PTR010';
if(preg_match('/^[a-z]+(\d+)-([a-z]+)(\d+)$/i', $partno, $matches))
{
echo "<p>Result for $partno:<br>".
$matches[1]." - ".$matches[2]." - ".(int)$matches[3]."</p>\n";
}
else
{
user_error("Pattern match failed on part no. '$partno'");
}
If it is fixed length, just use the substr() function to pull out the different parts of the string, and cast the last 3 digits as an integer (as I did in my preg example) so that there's no leading zero.