You just need substr + instr with negative 3rd parameter: from the doc by this link:
If position is negative, then Oracle counts backward from the end of
string and then searches backward from the resulting position.
So it would be simple
substr(str, 1, instr(str,' ', (35 - length(str))))
Another approach is to use regexp_substr:
regexp_substr('monika awasthi awasthi awasthi awasthi', '^.{1,35}\s')
Full example:
select
str
,substr(str, 1, instr(str,' ', (35 - length(str)))) substring
,regexp_substr('monika awasthi awasthi awasthi awasthi', '^.{1,35}\s') substring2
from (select 'monika awasthi awasthi awasthi awasthi' str from dual);
Results:
STR SUBSTRING SUBSTRING2
-------------------------------------- ----------------------------------- -------------------------------
monika awasthi awasthi awasthi awasthi monika awasthi awasthi awasthi monika awasthi awasthi awasthi