### 11.2 Searching for substrings ¶

Searching for substrings is done with `index`:

Builtin: index(string, substring) ¶

  Expands to the index of the first occurrence of substring in string. The first character in string has index 0. If substring does not occur in string, `index` expands to ‘`-1`’.

  The macro `index` is recognized only with parameters.

    index(`gnus, gnats, and armadillos', `nat')
    ⇒7
    index(`gnus, gnats, and armadillos', `dag')
    ⇒-1

Omitting substring evokes a warning, but still produces output; contrast this with an empty substring.

    index(`abc')
    error→m4:stdin:1: Warning: too few arguments to builtin `index'
    ⇒0
    index(`abc', `')
    ⇒0
    index(`abc', `b')
    ⇒1