Since you're using 9i, the simplest solution would be to use several REPLACEs:
with v_data as (
select 'Golden Lake' name from dual union all
select 'Blue Water Lake' name from dual union all
select 'Muskoka River' name from dual union all
select 'Sandy Bay' name from dual
)
select replace(
replace(
replace(name,
' Lake',
''),
' Bay',
''),
' River',
'')
from v_data
(I've added a space before each sub-pattern to avoid trailing spaces in the result).
Alternatively, you could try loading a Java class for Regular Expressions into the database and using that.