---
name: "StrMatch"
section: "3tcl"
platform: "linux"
package: "tcl8.3-doc"
version: "8.3.5-13"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/StrMatch/3tcl"
---

# StrMatch(3tcl)

test whether a string matches a pattern

```

```

## NAME

Tcl\_StringMatch, Tcl\_StringCaseMatch - test whether a string matches a pattern

## SYNOPSIS

```
#include <tcl.h>

int
Tcl_StringMatch(string, pattern)

int
Tcl_StringCaseMatch(string, pattern, nocase)
```

## ARGUMENTS

- char *\*string* (in)

  String to test.

- char *\*pattern* (in)

  Pattern to match against string.  May contain special characters from the set \*?\\\[\].

- int *nocase* (in)

  Specifies whether the match should be done case-sensitive (0) or case-insensitive (1).

  ```

  ```

## DESCRIPTION

This utility procedure determines whether a string matches a given pattern.  If it does, then **Tcl\_StringMatch** returns 1.  Otherwise **Tcl\_StringMatch** returns 0.  The algorithm used for matching is the same algorithm used in the \`\`string match'' Tcl command and is similar to the algorithm used by the C-shell for file name matching;  see the Tcl manual entry for details.

In **Tcl\_StringCaseMatch**, the algorithm is the same, but you have the option to make the matching case-insensitive.  If you choose this (by passing **nocase** as 1), then the string and pattern are essentially matched in the lower case.

## KEYWORDS

match, pattern, string
