PATH_TEST="../../dir/dir/dir/dir/@#$%^&*()-_=+\\|;:'\",<.>/?/";
echo "$PATH_TEST" | grep "^\.\?\.\?\([a-zA-Z0-9@#$%^&*()-_=+\|;:'",<>/?]\+\)\+/\?$";
. is not within the character set portion of the match specification provided to grep.
../../ is matched; I expect it to match only '../', therefore no match for the line.
. is also matched in the ,<.> portion toward the end of the path.
SOURCE="[[]]";
echo "$SOURCE" | grep "[[]]\+"
The very first [ is not matched in this string.
grep "[\[\]]\+" does not match it either.
Regards,
sunny