The easiest way to do this is to use the UPPER or LOWER function to convert your data to all upper or lower case when doing a search. For example
select text_col from your table
where upper(text_col) like '%ABC%'
would return rows that contain "abc", "ABC", "Abc", and so on.
You should also look into creating function based indexes to support this. Some case-insensitive queries will be much faster with a function based index.
Of course you also can look at implementing Intermedia Text, or some other Oracle add-on. The title of your post indicates that you're looking in that direction.