What you want is not a check constraint but an ordinary foreign key.
Normally you would do:
alter table table_name add foreign key (src_table) references user_tables(table_name);
however Oracle won't allow this as
user_tables is a view, not a table.
You could try to reference the underlying Oracle data-dictionary table, but that probably won't work either -- not least because you'd need two columns at your end --
schema -- but also you'd need to be granted the privilege to reference that table.
An approach that I would consider -- as recommended above -- is to create your own table listing which tables can be referred to. You could populate this table yourself, or you could create a DDL trigger to maintain it for you!
The other thing to consider is what to do when the table is dropped: will you
on delete cascade delete the record in your table, or set its contents to
on delete set null?