Nested with - Incorrect syntax near the keyword 'WITH'
From documentation


  Specifying more than one WITH clause in a CTE is not allowed. For
  example, if a CTE_query_definition contains a subquery, that subquery
  cannot contain a nested WITH clause that defines another CTE.


Thus, 

with PS as (
    WITH CS AS (
      SELECT      'ab' as a
    )
    SELECT * from cs
    ) select * from PS


gives you error. You can define multiple CTEs though : 

WITH CS AS (SELECT 'ab' as a),
PS as (SELECT * from cs) 
select * from PS