Рассматривали ли вы использование regexp_extract, например,
%sql
SELECT *,
regexp_extract( yourColumn, '(.*@.*)', 1 ) AS email,
regexp_extract( yourColumn, '([a-z]+)', 1 ) AS someText,
regexp_extract( yourColumn, '(\\d+)', 1 ) AS someDigits,
regexp_extract( yourColumn, '([0-9]{6})', 1 ) AS sixDigits,
regexp_extract( yourColumn, '(\\d+\.\\d+\.\\d+\.\\d+)', 1 ) AS ipAddress
FROM tmp
Мои результаты с вашими данными образца:
Мои результаты
Ваш подход должен быть более сложным, например, регулярное выражение для электронной почты неверно.