
# works right
echo ab$(echo mnop)yz
# works right
echo ab$(echo mnop
)yz
#
# works right
echo $(echo ab
   )
# works right
echo $(
)
echo $()
echo ab$()cd

echo $(case a in (a) echo sh_352.26ax; esac )
echo $(case a in (a) echo sh_352.26ay; esac)

echo $((echo sh_352.25a);(echo sh_352.25b))

echo $(echo sh_352.27 ')' ")" \)
	# ) comment
	)

echo $(
echo abc # a comment with )
)

echo $(
cat <<eof
here doc with )
eof
)

echo $(
echo ')'
)

unset x
x=$(cat <<"EOF"
bad' syntax
EOF
)
echo "$x"
unset x

echo $(for f in \); do echo a; done )
echo $(case a in a) echo sh_352.26a; esac )
echo $(case a in a) echo sh_352.26a; esac)

echo $(case a in
            (a) echo sh_352.26
               ;;
                 esac
          )

echo $(case a in
            a) echo sh_352.26
               ;;
                 esac
          )


echo $(case a in
            a) echo sh_352.26
               ;;


			

    
                 esac

          )

echo $(( 4<(2+3) ? 1 : 32))

echo $(cat << end
sh_352.28 )
end
)

echo $(cat <<- end  
sh_352.28 )
	end
)

k=$(case x in x) echo k;; esac)
echo $k

x=$(
    case $(ls) in
	example) echo foobix;;
    esac
)

echo $( echo ab\
cd)

echo `echo ab
cd`

echo `echo ab #xyz
cd`

echo "$(echo abcde)
"

recho "$(echo abcde)
  "

echo $(echo abcde)\
foo

recho $(echo abcde)\
   foo

recho "wx$(echo abcde)yz"
recho "$(echo abcde)"

echo $(cat <<eof
'
eof
)

echo after 1

echo $(cat <<\eof
'
eof
)

echo after 2

echo "$(cat <<\eof
'
eof
)"

echo after 3

echo "$(cat <<\eof
`
eof
)"

echo after 4

echo $(
cat << ')'
hello
)
)

echo after 5

echo $(cat <<'eof'
'
eof
)

echo after 6

echo $(
  case x in  x) echo x;; esac
)

echo $(
  case x in (x) echo x;; esac
)

echo $(
  echo 'quoted )'
)

echo $(
  echo comment # with )
)

echo $(
cat <<\eof
  here-doc with )
eof
)

echo $(
cat <<\)
	here-doc terminated with a parenthesis
)
)

echo $(
cat <<\eof
	'   # or a single back- or doublequote
eof
)

${THIS_SH} ./comsub-posix1.sub

# produced a parse error through bash-4.0-beta2
: $(echo foo)"
"

# fixed after bash-4.0 released
: $(case a in a) echo ;; # comment
esac)
