Какое регулярное выражение?
а подумать?
конкретно в вашем примере достаточно просто получить последний символ.
то есть достаточно сделать substr($test, -1);

вам бы задачу конкретизировать.
Тут sscanf хватит
foreach (['32d', '3m', '5y'] as $value) {
    [$count, $term] = sscanf($value, '%d%s');
    var_dump($count, $term);
}