### 8.212 `SCAN` — Scan a string for the presence of a set of characters

Description:
  Scans a STRING for any of the characters in a SET of characters.

  If BACK is either absent or equals `FALSE`, this function returns the position of the leftmost character of STRING that is in SET. If BACK equals `TRUE`, the rightmost position is returned. If no character of SET is found in STRING, the result is zero.

Standard:
  Fortran 95 and later, with KIND argument Fortran 2003 and later
Class:
  Elemental function
Syntax:
  `RESULT = SCAN(STRING, SET[, BACK [, KIND]])`
Arguments:

  STRING | Shall be of type `CHARACTER`.
  SET | Shall be of type `CHARACTER`.
  BACK | (Optional) shall be of type `LOGICAL`.
  KIND | (Optional) An `INTEGER` initialization expression indicating the kind parameter of the result.

Return value:
  The return value is of type `INTEGER` and of kind KIND. If KIND is absent, the return value is of default integer kind.
Example:

                PROGRAM test_scan
                  WRITE(*,*) SCAN("FORTRAN", "AO")          ! 2, found 'O'
                  WRITE(*,*) SCAN("FORTRAN", "AO", .TRUE.)  ! 6, found 'A'
                  WRITE(*,*) SCAN("FORTRAN", "C++")         ! 0, found none
                END PROGRAM

See also:
  INDEX intrinsic, VERIFY