Enumerate Oracle tables in PLSQL
Depending on your privilege level, you'd want to use DBA_TABLES, ALL_TABLES, or USER_TABLES.  There is a StackOverflow thread that walks through this in some detail.

By default, Oracle identifiers are going to be stored in upper case in the data dictionary and queries are case-sensitive.  Most likely, if you have a table whose name contains the string "abc", you'd need to search in upper case, i.e.

SELECT *
  FROM dba_tables
 WHERE table_name LIKE '%ABC%'