Here's another way:
with tbl(objectid, linkvalue) as (
select 1, '1V 2E 3T/B' from dual union all
select 2, '3C+1E. 3V' from dual union all
select 3, '5V.4PH' from dual
)
select objectid,
regexp_substr(linkvalue, '(.*?)([ +.]+|$)', 1, level, NULL, 1)
from tbl
connect by level <= regexp_count(linkvalue, '[ +.]+') + 1
and prior objectid = objectid
and prior sys_guid() is not null;
OBJECTID REGEXP_SUBSTR(LINKVALUE,'(.*?)([ +.]+|$)',1,LEVEL,NULL,1)
-------- ----------------------------------------------------------
1 1V
1 2E
1 3T/B
2 3C
2 1E
2 3V
3 5V
3 4PH
Edit: Added a case for when there is no delimiter. Make a pass to add a space between a capital letter and a number. Sure it's somewhat quick and dirty, but I won't tell if you won't.
Edit2: Allowed for a value consisting of multiple single capital letters separated by 1 or more delimiters. The regex is getting ugly though.
-- Set up data set
with tbl(objectid, linkvalue) as (
select 1, '1V 2E 3T/B' from dual union all
select 2, '3C+1E. 3V' from dual union all
select 3, '5V.4PH' from dual union all
select 4, '4H6C' from dual union all
select 5, 'C E O 8V' from dual union all
select 6, 'V H' from dual union all
select 7, '9X X Y Z' from dual
),
-- Add a delimiter where missing
tbl1(objectid, linkvalue) as (
select objectid,
regexp_replace(linkvalue, '([A-Z])([0-9])', '\1 \2')
from tbl
)
select objectid,
regexp_substr(linkvalue, '(([A-Z][ +.]?)+|.*?)([ +.]+|$)', 1, level, NULL, 1)
from tbl1
connect by regexp_substr(linkvalue, '(([A-Z][ +.]?)+|.*?)([ +.]+|$)', 1, level) is not null
and prior objectid = objectid
and prior sys_guid() is not null;