Indeed you can shorten your regex using the pipe to separate each match:
if ($regex(%v,/<(length)>([^>]+)<\/length>/)) {
set %v. $+ $left($regml(1),2) $hf($regml(2))
}
if ($regex(%v,/<info name='(artist|album|title|bitrate|type|sample rate)'>([^>]+)<\/info>/i)) {
set %v. $+ $left($regml(1),2) $hf($regml(2))
}