Oracle 9.2
Optimizer choose

I have a table with 2 indexes.

When I make the following staement :

select /*+ index_asc (a attrib_name ) */ *
from attributes a
where rownum < 5

It makes a full of the table.

When I make this one :

select /*+ index_desc (a OT_ATTRIBUTELIST_FK ) */ *
from attributes a
where rownum < 5

It uses appropriately the index.

Both indexes exist ( btree) and have been analyzed.

Can someone explain ?