Test Bash ${...} parameter expansions — defaults, substring extraction, pattern strip, replacement, case, length — on your own variables. Pure JS, no shell, no server.
Set the variables you want to expand. VAR is unset means it has never been assigned. To make it set-but-empty, leave the value blank but click "set empty".
Pattern syntax: uses bash glob — * matches any string, ? any single char, [abc] char class. Patterns in this tester support globs (translated to regex internally) but not the full extglob ([@?+*!](pat)) syntax.
Set vs. unset: ${var-x} only substitutes when unset; ${var:-x} substitutes when unset OR empty. The : always means "treat empty as unset".
Greedy vs lazy: ${var#pat} strips the shortest prefix matching pat; ${var##pat} strips the longest. Same with %/%% for suffixes.