View based on SELECT with 'WITH' clause

Try dropping the parentheses:

create view ex_view as
with 
    alias1 as (select...),
    alias2 as (select ... from alias1),
    alias3 as (select col1, col2 ... from alias2)
from alias3;

You shouldn't have the parentheses around the query; change it to:

create view ex_view as (
with 
alias1 as (select...),
alias2 as (select ... from alias1),
alias3 as (select col1, col2 ... from alias2)
select col1,col2 
from alias3
)

For example:

create view ex_view as
with 
alias1 as (select dummy from dual),
alias2 as (select dummy as col1, dummy as col2 from alias1),
alias3 as (select col1, col2 from alias2)
select col1,col2 
from alias3;

View ex_view created.

The same construct with the parentheses around the query gets ORA-32034: unsupported use of WITH clause too.

If you aren't actually using any of the subqueries in more than one level of query - so the 'common' part of 'common table expression' isn't really relevant - you could use inline views instead:

create view ex_view as
select alias3.col1, alias3.col2
from (
  select col1, col2
  from (
    select dummy as col1, dummy as col2
    from (
      select dummy from dual
    ) alias1
  ) alias2
) alias3;

But the with clause is valid, and often easier to read and maintain anyway.