Q:

Is possible using Regular Expressions within PL/SQL function?

I'm coding a simple PL/SQL to format employees CUIL (Social Security ID) The problem is I want to replace one o more '-' or '/' or spaces for a simple '-' and my code works fine for spaces and '/' but I don't have lucky for the other one. Can you help me? Thanks
CREATE OR REPLACE FUNCTION formatear_cuit_cuil(p_cuit_cuil VARCHAR2)
RETURN VARCHAR2
IS
    v_length VARCHAR2(50) := p_cuit_cuil;
BEGIN
    IF
        LENGTH(REGEXP_REPLACE(v_length, '[/ | |.]+')) <> 11 THEN
            RETURN 'El CUIT/CUIL no tiene el largo correcto';
    END IF;

    IF 
        REGEXP_LIKE(
            p_cuit_cuil, 
            '^[0-9][0-9][ /-]+[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][ /-]+[0-9]$'
        ) THEN
            RETURN REGEXP_REPLACE(p_cuit_cuil, '/+| +', '-');
    ELSE
        RETURN 'CUIT/CUIL no tiene el formato correcto';
    END IF;
EXCEPTION
    WHEN OTHERS THEN
        RETURN 'Error al formatear CUIT/CUIL';
END formatear_cuit_cuil;

Example that works

Example that does not work

A:

This should work as a regexp_replace - '([ /-]+)', '-'
e.g.
select regexp_replace('///  98   //////   46134679    1', '([ /-]+)', '-')
  from dual

returns -98-46134679-1
This matches one or more of the specified characters and replaces them with a single -

