Using the above column name as the example above, and knowing I am only pulling US states and territories, I came up with the following case statement using a combination of substring and instring functions in oracle. It works for what I need:
,CASE when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'YORK'
THEN 'NEW YORK'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'JERSEY'
THEN 'NEW JERSEY'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'HAMPSHIRE'
THEN 'NEW HAMPSHIRE'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'MEXICO'
THEN 'NEW MEXICO'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'RICO'
THEN 'PUERTO RICO'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'ISLAND'
THEN 'RHODE ISLAND'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'SAMOA'
THEN 'AMERICAN SAMOA'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,3)+1),
(instr(city_state_zip_column,' ',-1,2)-instr(city_state_zip_column,' ',-1,3))-1) = 'NORTH'
AND
substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'CAROLINA'
THEN 'NORTH CAROLINA'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,3)+1),
(instr(city_state_zip_column,' ',-1,2)-instr(city_state_zip_column,' ',-1,3))-1) = 'SOUTH'
AND
substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'CAROLINA'
THEN 'SOUTH CAROLINA'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,3)+1),
(instr(city_state_zip_column,' ',-1,2)-instr(city_state_zip_column,' ',-1,3))-1) = 'NORTH'
AND
substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'DAKOTA'
THEN 'NORTH DAKORA'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,3)+1),
(instr(city_state_zip_column,' ',-1,2)-instr(city_state_zip_column,' ',-1,3))-1) = 'SOUTH'
AND
substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'DAKOTA'
THEN 'SOUTH DAKOTA'
when substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,3)+1),
(instr(city_state_zip_column,' ',-1,2)-instr(city_state_zip_column,' ',-1,3))-1) = 'WEST'
AND
substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1) = 'VIRGINIA'
THEN 'WEST VIRGINIA'
else
substr(city_state_zip_column,(instr(city_state_zip_column,' ',-1,2)+1),
(instr(city_state_zip_column,' ',-1,1)-instr(city_state_zip_column,' ',-1,2))-1)
END AS STATE