5c5,6
< #+ and to Michael Zick and Omair Eshkenazi for extending it.
---
> #+ and to Michael Zick and Omair Eshkenazi, for extending it.
> #  And to Nathan Coulter for clarifications and corrections.
14a16
> 
57,58c59,60
< # When extended as above; arrays are 'stacks'
< # The above is the 'push'
---
> # When extended as above, arrays are 'stacks' ...
> # Above is the 'push' ...
74c76
< from=1		# Zero-based numbering.
---
> from=1		    # Zero-based numbering.
111,112c113,114
< #  Therefore : Bash supports string vector operations
< #+ if the result is a zero length string,
---
> #  Therefore : Bash supports string vector operations.
> #  If the result is a zero length string,
113a116,123
> #  However, if the expansion is in quotes, the null elements remain.
> 
> #  Michael Zick:    Question, are those strings hard or soft quotes?
> #  Nathan Coulter:  There is no such thing as "soft quotes."
> #!    What's really happening is that
> #!+   the pattern matching happens after
> #!+   all the other expansions of [word]
> #!+   in cases like ${parameter#word}.
115d124
< #  Question, are those strings hard or soft quotes?
119a129,130
> echo "Number of elements in array9:  ${#array9[@]}"
> array9=( "${array0[@]/$zap/}" )
120a132,134
> # This time the null elements remain.
> echo "Number of elements in array9:  ${#array9[@]}"
> 
122c136
< # Just when you thought you where still in Kansas . . .
---
> # Just when you thought you were still in Kansas . . .
125a140,145
> # But, the asterisk in zap won't be interpreted if quoted.
> array10=( ${array0[@]#"$zap"} )
> echo
> echo "Elements in array10:  ${array10[@]}"
> # Well, maybe we _are_ still in Kansas . . .
> # (Revisions to above code block by Nathan Coulter.)
127,128d146
< # Compare array7 with array10.
< # Compare array8 with array9.
130c148,149
< # Answer: must be soft quotes.
---
> #  Compare array7 with array10.
> #  Compare array8 with array9.
132c151,157
< exit 0
---
> #  Reiterating: No such thing as soft quotes!
> #  Nathan Coulter explains:
> #  Pattern matching of 'word' in ${parameter#word} is done after
> #+ parameter expansion and *before* quote removal.
> #  In the normal case, pattern matching is done *after* quote removal.
>  
> exit
