---
name: "Tcl_StringCaseMatch"
section: "3"
platform: "linux"
package: "tcl"
version: "8.6.16-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/Tcl_StringCaseMatch"
---

# Tcl\_StringCaseMatch(3)

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(str, pattern)

int
Tcl_StringCaseMatch(str, pattern, flags)
```

## ARGUMENTS

- const char *\*str* (in)

  String to test.

- const char *\*pattern* (in)

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

- int *flags* (in)

  OR-ed combination of match flags, currently only **TCL\_MATCH\_NOCASE**. 0 specifies a case-sensitive search.

  ```

  ```

## 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 **TCL\_MATCH\_NOCASE**), then the string and pattern are essentially matched in the lower case.

## KEYWORDS

match, pattern, string
