# first try some invalid patterns (do in subshell due to parsing error)
"$THIS_SH" -c 'echo ${=}'
"$THIS_SH" -c 'echo ${:=}'

# now some funky ones
"$THIS_SH" -c 'echo ${#=}'
"$THIS_SH" -c 'echo ${#:=}'

# should error out
"$THIS_SH" -c 'set --; echo _${1=}'
"$THIS_SH" -c 'set --; echo _${1:=}'
"$THIS_SH" -c 'set --; echo _${1=word}'
"$THIS_SH" -c 'set --; echo _${1:=word}'

# should not error
"$THIS_SH" -c 'set aa; echo _${1=}'
"$THIS_SH" -c 'set aa; echo _${1:=}'
"$THIS_SH" -c 'set aa; echo _${1=word}'
"$THIS_SH" -c 'set aa; echo _${1:=word}'

# should work fine
unset f; echo _$f
unset f; echo _${f=}
unset f; echo _${f:=}
unset f; echo _${f=word}
unset f; echo _${f:=word}

f=; echo _$f
f=; echo _${f=}
f=; echo _${f:=}
f=; echo _${f=word}
f=; echo _${f:=word}

f=fff; echo _$f
f=fff; echo _${f=}
f=fff; echo _${f:=}
f=fff; echo _${f=word}
f=fff; echo _${f:=word}
