Следующее регулярное выражение сделает это. Если они не встречаются по одному на строку, вы также должны добавить границы \b
после косой черты и перед закрывающей.
$s = "VARCHAR(90)";
$matches = array();
preg_match("/([A-Z]+)\(([0-9]+)\)/", $s, $matches);
// Then use the matched values into your array.
array($matches[1], $matches[2]);
РЕДАКТИРОВАТЬ : В первый раз неправильно заданы ключи массива $matches
. Должно быть 1 & 2, а не 0 & 1.