I am using Oracle 11G and have the following field NAME with the following strings:

```
NAME
'String having ZT-01183 - App # 2'
'This String having AG-01183 with - Apps # 4'

```

I am using the following regular expression but what I get is the following: ZT-01183 - App # 2 and AG-01183 with - Apps # 4.

```
CASE 
    WHEN REGEXP_LIKE(NAME, 'ZT-|AG-|having') 
    THEN regexp_replace(NAME, '^.*? having ','')
    END AS NEW_NAME

```

I only want to get the very next string in the statement so the results should be AG-01183 and ZT-01183. I am instead getting everything after having. Any help would be greatly appreciated.