oracle – “Regular Expression” to find doubled words in a string


I have a table with below structure:

create table EMPLOYEE_INFO
( e_number            NUMBER,
  e_name              VARCHAR2(50),
  e_personal_interest VARCHAR2(2000))

Some example data :

e_number  |  e_name |  e_personal_interest 
------------------------------------------
  1       |   a     |  This person likes likes to play piano piano   
  2       |   c     |  this this person likes chila chila    
  3       |   d     |  person apears apears to be 10 years old    
  4       |   c     |  she is is 10 years old old    

As you can see in e_personal_interest column of the table , some words are repeated twice (for instance for the first record we have ‘piano piano’), what I want to do is to find those records that have this problem . I used powerful Regular Expression and what I’ve written so far is below query :

select t.e_number,
       t.e_name,
       regexp_substr(t.e_personal_interest,
                     '(^|((:space:)(:punct:))+)(((:alpha:))+)' ||
                     '((:space:)(:punct:))+2' ||
                     '($|((:space:)(:punct:))+)') doubled_word
  from employee_info t
 where regexp_like(e_personal_interest,
                   '(^|((:space:)(:punct:))+)(((:alpha:))+)' ||
                   '((:space:)(:punct:))+2' || '($|((:space:)(:punct:))+)');

The problem with above query is that it just shows the first set of words that are repeated after each other for example it just shows “this this” for the second record . I want to have all sets of words that are repeated after each other for all records, "this this" and also "chila chila" for the second record for instance.

I was wondering if you could help me with this.
thanks in advance.