{
{   The CLP$BUILD_PATTERN_FOR_WILD_CARD request builds a clt$string_pattern
{ representation from a "wild card" pattern specification.  The following
{ have special meaning with a "wild card" pattern.
{
{       ?     This character (wild card single) matches any single character.
{
{       *     This character (wild card multiple) matches any string of
{             characters, including a zero-length (null) string.
{
{       '     This character is used to enclose other special characters that
{             are to be matched literally.  Two ' characters in succession
{             means a single '.
{
{             Note, the quote character may not be used in a wild card pattern
{             for a file or name.
{
{   In addition to the above, the following have special meaning when the
{ PATTERN_TYPE is CLC$WC_EXTENDED_PATTERN.
{
{       [ ]   This notation (wild card class) can be used in an extended
{             pattern and matches any of the characters enclosed by the square
{             brackets.  If either of the characters [ or ] are to be members
{             of the class, they must be enclosed in ' characters.  If a '
{             character is to be a member of the the class, two consecutive '
{             characters must be used.
{
{             The characters ? and * characters have no special significance
{             within a character class pattern element.  The - character has no
{             special significance if it is the first or last wild card class
{             component.
{
{             A shorthand notation for representing a range of characters that
{             are to be members of the class is provided.  This notation
{             consists of placing a - between the characters at the low and
{             high ends of the range.  All of the ASCII characters between and
{             including the characters on either side of the - are included in
{             the class, regardless of the collating order of those characters
{             (i.e.  [0-9] and [9-0] are equivalent and include all the decimal
{             digits).
{
{       [^ ]  This notation (wild card inverse class) is very similar to that
{             above except that the characters between the square brackets
{             following the first ^ character specify characters that are not
{             to be members of the class.  The ^ character has no special
{             significance except when it immediately follows the [ of the
{             class.
{
{       { }   {This notation (wild card alternation) can be used in an extended
{             pattern and matches any one of a number of alternative
{             sub-patterns.  The alternatives are separated from one another by
{             the | character.  An empty alternative matches the null string.
{             The | character has no special significance outside of a wild
{             card alternation.
{
{
{       CLP$BUILD_PATTERN_FOR_WILD_CARD (WILD_CARD_PATTERN_TYPE, BUILD_OPTIONS,
{         SOURCE, WORK_AREA, PATTERN, STATUS)
{
{ WILD_CARD_PATTERN_TYPE: (input)  This parameter determines which of the
{       special characters described above are to be treated as such within the
{       pattern string.
{
{       CLC$WC_BASIC_PATTERN:  This option causes only the "?", "*" and "'"
{             characters to have the meanings described above.
{
{       CLC$WC_EXTENDED_PATTERN:  This option causes all of elements described
{             above to be recognized.
{
{ BUILD_OPTIONS: (input)  This parameter specifies options that affect how the
{       "wild card" pattern is represented as a string pattern.
{
{       CLC$SP_FILE_REFERENCE_PATTERN:  This options should be used only if the
{             pattern is to be used to match strings containing NOS/VE file
{             references.  It causes the "*" character to not match "."s and
{             imposes the necessary interpretation of the special file
{             reference path element $ALL.
{
{       CLC$SP_MATCH_AT_LEFT:  This option causes an element to be added to the
{             string pattern that forces the pattern to match at the left end
{             of a subject string.  This same effect can be acheived by
{             specifying CLC$SP_ANCHORED for the ANCHOR_OPTION parameter of
{             CLP$MATCH_STRING_PATTERN, which is slightly more efficient.
{
{       CLC$SP_MATCH_AT_RIGHT:  This option causes an element to be added to
{             the string pattern that forces the pattern to match at the right
{             end of a subject string.
{
{       CLC$SP_IGNORE_MATCHED_SUBSTRING:  This option can cause a slightly more
{             efficient representation for certain patterns to be built.  It
{             should be specified when the INDEX and SIZE components of the
{             MATCH_INFO parameter of CLP$MATCH_STRING_PATTERN are NOT to be
{             used.
{
{ SOURCE: (input)  This parameter specifies the "wild card" pattern.
{
{ WORK_AREA: (input, output)  This parameter specifies an area of storage that
{       will be used to construct the string pattern.  The current position of
{       this sequence pointer is updated to reflect the amount of storage used
{       by the request.  The resulting string pattern is completely contained
{       within the used part of this sequence.
{
{ PATTERN: (output)  This parameter specifies the resulting string pattern.
{
{ STATUS: (output)  This parameter specifies the request completion status.
{
{       CONDITIONS: cle$bad_wild_card_pattern
{                   cle$work_area_overflow
{
