# This testcase demonstrates that backslashes are treated differently
# in 1st and 2nd parts of ${var/search/repl}:
# if quoted ("${var/search/repl}"), and repl contains \a (a non-special char),
# the backslash in repl stays; if unquoted, backslash is removed.
# But search part does not act like that: \a is always converted to just a,
# even in quotes.
#
# bash4 (and probably bash3 too): "Quoted:" results are different from
# unquoted expansions - they have a backslash before z.
#
# The difference only exists if repl is a literal. If it is a variable:
# ${v/.../$s}, then all backslashes are preserved in both cases.

v='a*b\*c'
echo 'Source:       ' "$v"
echo 'Replace str:  ' '_\\_\z_'

echo 'Pattern:      ' 'single backslash and star: "replace literal star"'
echo 'Unquoted:     ' ${v/\*/_\\_\z_}
r=${v/\*/_\\_\z_}
echo 'Unquoted =:   ' "$r"
echo 'Quoted:       ' "${v/\*/_\\_\z_}"
r="${v/\*/_\\_\z_}"
echo 'Quoted =:     ' "$r"

echo 'Pattern:      ' 'double backslash and star: "replace backslash and everything after it"'
echo 'Unquoted:     '  ${v/\\*/_\\_\z_}
r=${v/\\*/_\\_\z_}
echo 'Unquoted =:   ' "$r"
echo 'Quoted:       ' "${v/\\*/_\\_\z_}"
r="${v/\\*/_\\_\z_}"
echo 'Quoted =:     ' "$r"

echo

v='a\bc'
echo 'Source:       ' "$v"
echo 'Replace str:  ' '_\\_\z_'

echo 'Pattern:      ' 'single backslash and b: "replace b"'
echo 'Unquoted:     '  ${v/\b/_\\_\z_}
r=${v/\b/_\\_\z_}
echo 'Unquoted =:   ' "$r"
echo 'Quoted:       ' "${v/\b/_\\_\z_}"
r="${v/\b/_\\_\z_}"
echo 'Quoted =:     ' "$r"

echo 'Pattern:      ' 'double backslash and b: "replace backslash and b"'
echo 'Unquoted:     '  ${v/\\b/_\\_\z_}
r=${v/\\b/_\\_\z_}
echo 'Unquoted =:   ' "$r"
echo 'Quoted:       ' "${v/\\b/_\\_\z_}"
r="${v/\\b/_\\_\z_}"
echo 'Quoted =:     ' "$r"

echo

v='a\bc'
s='_\\_\z_'
echo 'Source:       ' "$v"
echo 'Replace str:  ' "$s" '(as variable $s)'

echo 'Pattern:      ' 'single backslash and b: "replace b"'
echo 'Unquoted:     '  ${v/\b/$s}
r=${v/\b/$s}
echo 'Unquoted =:   ' "$r"
echo 'Quoted:       ' "${v/\b/$s}"
r="${v/\b/$s}"
echo 'Quoted =:     ' "$r"

echo 'Pattern:      ' 'double backslash and b: "replace backslash and b"'
echo 'Unquoted:     '  ${v/\\b/$s}
r=${v/\\b/$s}
echo 'Unquoted =:   ' "$r"
echo 'Quoted:       ' "${v/\\b/$s}"
r="${v/\\b/$s}"
echo 'Quoted =:     ' "$r"

echo

echo Done: $?
