I'm guessing that you're working with Oracle because is the one that has varchar2 (AFAIK).
This is a SQL Server forum which means that you might not get the best suggestions for other RDBMS. This is a script tested on Oracle that might help you.
SELECT id,
description,
TO_DATE( CASE WHEN col1 LIKE '%/%' THEN col1 ELSE col2 END) somedate,
CASE WHEN col1 LIKE '%/%' THEN col2 ELSE col1 END somenumber
FROM(
SELECT t1.*,
SUBSTR( description, 1, INSTR( description, ';') - 1) col1,
SUBSTR( description, INSTR(description, ';') + 1, 25) col2
FROM t1
)x;