sed script required

Collegues
I have a flat file with data in following structure.
(S1 (S (NP (NP (DT The) (JJ beautiful) (NN view)) (PP (IN of) (NP (JJ outside) (NNP greenery)))) (VP (VBZ adds) (NP (DT a) (NN tranquil) (NN touch)) (PP (TO to) (NP (DT this) (NN place)))) (. .)))

I have to extract the contents in ( NP ((( )))) and (VP ((( ))) and (PP ((( )),
That i have indiacted in bold.
First I have to extract the (NP (())
then
(VP ((( ))
then (PP (((()))
Any solution
With adavanced thanks and regards

Jaganadh.G
Linguist

Here's one way...

$ cat file1
(S1 (S (NP (NP (DT The) (JJ beautiful) (NN view)) (PP (IN of) (NP (JJ outside) (NNP greenery)))) (VP (VBZ adds) (NP (DT a) (NN tranquil) (NN touch)) (PP (TO to) (NP (DT this) (NN place)))) (. .)))

$ cat prog.awk
    {
        for (i = 2; i <= length($0); i++) {
            x = substr($0, i, 1)
            if (c > 0) {
                b = b x
                if (x == "(") c++
                if (x == ")") c--
            }
            if (c == 0 && substr($0, i, 3) ~ /^\([NVP]P$/) {
                if (b) print b
                b = x
                c++
            }
        }
    }

    END {
        if (b) print b
    }

$ awk -f prog.awk file1
(NP (NP (DT The) (JJ beautiful) (NN view)) (PP (IN of) (NP (JJ outside) (NNP greenery))))
(VP (VBZ adds) (NP (DT a) (NN tranquil) (NN touch)) (PP (TO to) (NP (DT this) (NN place))))

Collegue
Thaks for the solution. It is working fine and smooth.
Jaganadh.G
Linguist