Am trying to use backreference expression to take out three subexpressions from a search, and reposition each subexpression as follows:

 SELECT REGEXP_REPLACE('AAA 123 ppp','(^[[:alpha:]]+) ([[:digit:]]) ([[:alpha:]]+)','\3 \1 \2') from dual

However am getting the result as AAA 123 ppp where expecting ppp AAA 123 Where am i getting it wrong?

1 Answer 1


Missing + after [[:digit:]]

select  regexp_replace('AAA 123 ppp','(^[[:alpha:]]+) ([[:digit:]]+) ([[:alpha:]]+)','\3 \1 \2') 
from    dual

ppp AAA 123

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.