# `Unicode.Property`
[🔗](https://github.com/elixir-unicode/unicode/blob/v1.21.1/lib/unicode/property.ex#L1)

Functions to introspect Unicode properties for binaries
(Strings) and codepoints.

The functions in this module only represent boolean
properties. That is, properties that are either true
or false - or in several cases represented as "has property"
or "does not have property".

# `string_or_codepoint`

```elixir
@type string_or_codepoint() :: String.t() | non_neg_integer()
```

# `aliases`

Returns a map of aliases for
Unicode blocks.

An alias is an alternative name
for referring to a block. Aliases
are resolved by the `fetch/1` and
`get/1` functions.

# `alphabetic`

Returns `:alphabetic` or `nil` indicating
if the codepoint or string has the property
`:alphabetic`.

For string parameters, all codepoints in
the string must have the `:alphabetic`
property in order for the result to `:alphabetic`.

# `alphabetic?`

Returns a boolean indicating if the
codepoint or string has the property
`:alphabetic`.

For string parameters, all codepoints in
the string must have the `:alphabetic`
property in order for the result to be `true`.

# `alphanumeric`

Returns `:alphanumeric` or `nil` based upon
whether the given codepoint or binary
is all alphanumeric characters.

This is useful when the desired result is
`truthy` or `falsy`

## Example

    iex> Unicode.Property.alphanumeric "123abc"
    :alphanumeric
    iex> Unicode.Property.alphanumeric "???"
    nil

# `alphanumeric?`

Returns a boolean based upon
whether the given codepoint or binary
is all alphanumeric characters.

## Example

    iex> Unicode.Property.alphanumeric? "123abc"
    true
    iex> Unicode.Property.alphanumeric? "⅔"
    false

# `ascii_hex_digit`

Returns `:ascii_hex_digit` or `nil` indicating
if the codepoint or string has the property
`:ascii_hex_digit`.

For string parameters, all codepoints in
the string must have the `:ascii_hex_digit`
property in order for the result to `:ascii_hex_digit`.

# `ascii_hex_digit?`

Returns a boolean indicating if the
codepoint or string has the property
`:ascii_hex_digit`.

For string parameters, all codepoints in
the string must have the `:ascii_hex_digit`
property in order for the result to be `true`.

# `bidi_control`

Returns `:bidi_control` or `nil` indicating
if the codepoint or string has the property
`:bidi_control`.

For string parameters, all codepoints in
the string must have the `:bidi_control`
property in order for the result to `:bidi_control`.

# `bidi_control?`

Returns a boolean indicating if the
codepoint or string has the property
`:bidi_control`.

For string parameters, all codepoints in
the string must have the `:bidi_control`
property in order for the result to be `true`.

# `case_ignorable`

Returns `:case_ignorable` or `nil` indicating
if the codepoint or string has the property
`:case_ignorable`.

For string parameters, all codepoints in
the string must have the `:case_ignorable`
property in order for the result to `:case_ignorable`.

# `case_ignorable?`

Returns a boolean indicating if the
codepoint or string has the property
`:case_ignorable`.

For string parameters, all codepoints in
the string must have the `:case_ignorable`
property in order for the result to be `true`.

# `cased`

Returns `:cased` or `nil` indicating
if the codepoint or string has the property
`:cased`.

For string parameters, all codepoints in
the string must have the `:cased`
property in order for the result to `:cased`.

# `cased?`

Returns a boolean indicating if the
codepoint or string has the property
`:cased`.

For string parameters, all codepoints in
the string must have the `:cased`
property in order for the result to be `true`.

# `changes_when_casefolded`

Returns `:changes_when_casefolded` or `nil` indicating
if the codepoint or string has the property
`:changes_when_casefolded`.

For string parameters, all codepoints in
the string must have the `:changes_when_casefolded`
property in order for the result to `:changes_when_casefolded`.

# `changes_when_casefolded?`

Returns a boolean indicating if the
codepoint or string has the property
`:changes_when_casefolded`.

For string parameters, all codepoints in
the string must have the `:changes_when_casefolded`
property in order for the result to be `true`.

# `changes_when_casemapped`

Returns `:changes_when_casemapped` or `nil` indicating
if the codepoint or string has the property
`:changes_when_casemapped`.

For string parameters, all codepoints in
the string must have the `:changes_when_casemapped`
property in order for the result to `:changes_when_casemapped`.

# `changes_when_casemapped?`

Returns a boolean indicating if the
codepoint or string has the property
`:changes_when_casemapped`.

For string parameters, all codepoints in
the string must have the `:changes_when_casemapped`
property in order for the result to be `true`.

# `changes_when_lowercased`

Returns `:changes_when_lowercased` or `nil` indicating
if the codepoint or string has the property
`:changes_when_lowercased`.

For string parameters, all codepoints in
the string must have the `:changes_when_lowercased`
property in order for the result to `:changes_when_lowercased`.

# `changes_when_lowercased?`

Returns a boolean indicating if the
codepoint or string has the property
`:changes_when_lowercased`.

For string parameters, all codepoints in
the string must have the `:changes_when_lowercased`
property in order for the result to be `true`.

# `changes_when_titlecased`

Returns `:changes_when_titlecased` or `nil` indicating
if the codepoint or string has the property
`:changes_when_titlecased`.

For string parameters, all codepoints in
the string must have the `:changes_when_titlecased`
property in order for the result to `:changes_when_titlecased`.

# `changes_when_titlecased?`

Returns a boolean indicating if the
codepoint or string has the property
`:changes_when_titlecased`.

For string parameters, all codepoints in
the string must have the `:changes_when_titlecased`
property in order for the result to be `true`.

# `changes_when_uppercased`

Returns `:changes_when_uppercased` or `nil` indicating
if the codepoint or string has the property
`:changes_when_uppercased`.

For string parameters, all codepoints in
the string must have the `:changes_when_uppercased`
property in order for the result to `:changes_when_uppercased`.

# `changes_when_uppercased?`

Returns a boolean indicating if the
codepoint or string has the property
`:changes_when_uppercased`.

For string parameters, all codepoints in
the string must have the `:changes_when_uppercased`
property in order for the result to be `true`.

# `count`

Returns the count of the number of characters
for a given property.

## Example

    iex> Unicode.Property.count(:lowercase)
    2595

# `dash`

Returns `:dash` or `nil` indicating
if the codepoint or string has the property
`:dash`.

For string parameters, all codepoints in
the string must have the `:dash`
property in order for the result to `:dash`.

# `dash?`

Returns a boolean indicating if the
codepoint or string has the property
`:dash`.

For string parameters, all codepoints in
the string must have the `:dash`
property in order for the result to be `true`.

# `default_ignorable_code_point`

Returns `:default_ignorable_code_point` or `nil` indicating
if the codepoint or string has the property
`:default_ignorable_code_point`.

For string parameters, all codepoints in
the string must have the `:default_ignorable_code_point`
property in order for the result to `:default_ignorable_code_point`.

# `default_ignorable_code_point?`

Returns a boolean indicating if the
codepoint or string has the property
`:default_ignorable_code_point`.

For string parameters, all codepoints in
the string must have the `:default_ignorable_code_point`
property in order for the result to be `true`.

# `deprecated`

Returns `:deprecated` or `nil` indicating
if the codepoint or string has the property
`:deprecated`.

For string parameters, all codepoints in
the string must have the `:deprecated`
property in order for the result to `:deprecated`.

# `deprecated?`

Returns a boolean indicating if the
codepoint or string has the property
`:deprecated`.

For string parameters, all codepoints in
the string must have the `:deprecated`
property in order for the result to be `true`.

# `diacritic`

Returns `:diacritic` or `nil` indicating
if the codepoint or string has the property
`:diacritic`.

For string parameters, all codepoints in
the string must have the `:diacritic`
property in order for the result to `:diacritic`.

# `diacritic?`

Returns a boolean indicating if the
codepoint or string has the property
`:diacritic`.

For string parameters, all codepoints in
the string must have the `:diacritic`
property in order for the result to be `true`.

# `emoji`

Returns `:emoji` or `nil` indicating
if the codepoint or string has the property
`:emoji`.

For string parameters, all codepoints in
the string must have the `:emoji`
property in order for the result to `:emoji`.

# `emoji?`

Returns a boolean indicating if the
codepoint or string has the property
`:emoji`.

For string parameters, all codepoints in
the string must have the `:emoji`
property in order for the result to be `true`.

# `emoji_component`

Returns `:emoji_component` or `nil` indicating
if the codepoint or string has the property
`:emoji_component`.

For string parameters, all codepoints in
the string must have the `:emoji_component`
property in order for the result to `:emoji_component`.

# `emoji_component?`

Returns a boolean indicating if the
codepoint or string has the property
`:emoji_component`.

For string parameters, all codepoints in
the string must have the `:emoji_component`
property in order for the result to be `true`.

# `emoji_modifier`

Returns `:emoji_modifier` or `nil` indicating
if the codepoint or string has the property
`:emoji_modifier`.

For string parameters, all codepoints in
the string must have the `:emoji_modifier`
property in order for the result to `:emoji_modifier`.

# `emoji_modifier?`

Returns a boolean indicating if the
codepoint or string has the property
`:emoji_modifier`.

For string parameters, all codepoints in
the string must have the `:emoji_modifier`
property in order for the result to be `true`.

# `emoji_modifier_base`

Returns `:emoji_modifier_base` or `nil` indicating
if the codepoint or string has the property
`:emoji_modifier_base`.

For string parameters, all codepoints in
the string must have the `:emoji_modifier_base`
property in order for the result to `:emoji_modifier_base`.

# `emoji_modifier_base?`

Returns a boolean indicating if the
codepoint or string has the property
`:emoji_modifier_base`.

For string parameters, all codepoints in
the string must have the `:emoji_modifier_base`
property in order for the result to be `true`.

# `emoji_presentation`

Returns `:emoji_presentation` or `nil` indicating
if the codepoint or string has the property
`:emoji_presentation`.

For string parameters, all codepoints in
the string must have the `:emoji_presentation`
property in order for the result to `:emoji_presentation`.

# `emoji_presentation?`

Returns a boolean indicating if the
codepoint or string has the property
`:emoji_presentation`.

For string parameters, all codepoints in
the string must have the `:emoji_presentation`
property in order for the result to be `true`.

# `extended_numeric`

Returns `:extended_numeric` or `nil` based upon
whether the given codepoint or binary
is all alphanumeric characters.

Extended numberic includes fractions, superscripts,
subscripts and other characters in the category `No`.

This is useful when the desired result is
`truthy` or `falsy`

## Example

    iex> Unicode.Property.extended_numeric "123"
    :extended_numeric
    iex> Unicode.Property.extended_numeric "⅔"
    :extended_numeric
    iex> Unicode.Property.extended_numeric "-123"
    nil

# `extended_numeric?`

Returns a boolean based upon
whether the given codepoint or binary
is all numberic characters.

## Example

   iex> Unicode.Property.extended_numeric? "123"
   true
   iex> Unicode.Property.extended_numeric? "⅔"
   true

# `extended_pictographic`

Returns `:extended_pictographic` or `nil` indicating
if the codepoint or string has the property
`:extended_pictographic`.

For string parameters, all codepoints in
the string must have the `:extended_pictographic`
property in order for the result to `:extended_pictographic`.

# `extended_pictographic?`

Returns a boolean indicating if the
codepoint or string has the property
`:extended_pictographic`.

For string parameters, all codepoints in
the string must have the `:extended_pictographic`
property in order for the result to be `true`.

# `extender`

Returns `:extender` or `nil` indicating
if the codepoint or string has the property
`:extender`.

For string parameters, all codepoints in
the string must have the `:extender`
property in order for the result to `:extender`.

# `extender?`

Returns a boolean indicating if the
codepoint or string has the property
`:extender`.

For string parameters, all codepoints in
the string must have the `:extender`
property in order for the result to be `true`.

# `fetch`

Returns the Unicode ranges for
a given block as a list of
ranges as 2-tuples.

Aliases are resolved by this function.

Returns either `{:ok, range_list}` or
`:error`.

# `get`

Returns the Unicode ranges for
a given block as a list of
ranges as 2-tuples.

Aliases are resolved by this function.

Returns either `range_list` or
`nil`.

# `grapheme_base`

Returns `:grapheme_base` or `nil` indicating
if the codepoint or string has the property
`:grapheme_base`.

For string parameters, all codepoints in
the string must have the `:grapheme_base`
property in order for the result to `:grapheme_base`.

# `grapheme_base?`

Returns a boolean indicating if the
codepoint or string has the property
`:grapheme_base`.

For string parameters, all codepoints in
the string must have the `:grapheme_base`
property in order for the result to be `true`.

# `grapheme_extend`

Returns `:grapheme_extend` or `nil` indicating
if the codepoint or string has the property
`:grapheme_extend`.

For string parameters, all codepoints in
the string must have the `:grapheme_extend`
property in order for the result to `:grapheme_extend`.

# `grapheme_extend?`

Returns a boolean indicating if the
codepoint or string has the property
`:grapheme_extend`.

For string parameters, all codepoints in
the string must have the `:grapheme_extend`
property in order for the result to be `true`.

# `grapheme_link`

Returns `:grapheme_link` or `nil` indicating
if the codepoint or string has the property
`:grapheme_link`.

For string parameters, all codepoints in
the string must have the `:grapheme_link`
property in order for the result to `:grapheme_link`.

# `grapheme_link?`

Returns a boolean indicating if the
codepoint or string has the property
`:grapheme_link`.

For string parameters, all codepoints in
the string must have the `:grapheme_link`
property in order for the result to be `true`.

# `hex_digit`

Returns `:hex_digit` or `nil` indicating
if the codepoint or string has the property
`:hex_digit`.

For string parameters, all codepoints in
the string must have the `:hex_digit`
property in order for the result to `:hex_digit`.

# `hex_digit?`

Returns a boolean indicating if the
codepoint or string has the property
`:hex_digit`.

For string parameters, all codepoints in
the string must have the `:hex_digit`
property in order for the result to be `true`.

# `hyphen`

Returns `:hyphen` or `nil` indicating
if the codepoint or string has the property
`:hyphen`.

For string parameters, all codepoints in
the string must have the `:hyphen`
property in order for the result to `:hyphen`.

# `hyphen?`

Returns a boolean indicating if the
codepoint or string has the property
`:hyphen`.

For string parameters, all codepoints in
the string must have the `:hyphen`
property in order for the result to be `true`.

# `id_compat_math_continue`

Returns `:id_compat_math_continue` or `nil` indicating
if the codepoint or string has the property
`:id_compat_math_continue`.

For string parameters, all codepoints in
the string must have the `:id_compat_math_continue`
property in order for the result to `:id_compat_math_continue`.

# `id_compat_math_continue?`

Returns a boolean indicating if the
codepoint or string has the property
`:id_compat_math_continue`.

For string parameters, all codepoints in
the string must have the `:id_compat_math_continue`
property in order for the result to be `true`.

# `id_compat_math_start`

Returns `:id_compat_math_start` or `nil` indicating
if the codepoint or string has the property
`:id_compat_math_start`.

For string parameters, all codepoints in
the string must have the `:id_compat_math_start`
property in order for the result to `:id_compat_math_start`.

# `id_compat_math_start?`

Returns a boolean indicating if the
codepoint or string has the property
`:id_compat_math_start`.

For string parameters, all codepoints in
the string must have the `:id_compat_math_start`
property in order for the result to be `true`.

# `id_continue`

Returns `:id_continue` or `nil` indicating
if the codepoint or string has the property
`:id_continue`.

For string parameters, all codepoints in
the string must have the `:id_continue`
property in order for the result to `:id_continue`.

# `id_continue?`

Returns a boolean indicating if the
codepoint or string has the property
`:id_continue`.

For string parameters, all codepoints in
the string must have the `:id_continue`
property in order for the result to be `true`.

# `id_start`

Returns `:id_start` or `nil` indicating
if the codepoint or string has the property
`:id_start`.

For string parameters, all codepoints in
the string must have the `:id_start`
property in order for the result to `:id_start`.

# `id_start?`

Returns a boolean indicating if the
codepoint or string has the property
`:id_start`.

For string parameters, all codepoints in
the string must have the `:id_start`
property in order for the result to be `true`.

# `ideographic`

Returns `:ideographic` or `nil` indicating
if the codepoint or string has the property
`:ideographic`.

For string parameters, all codepoints in
the string must have the `:ideographic`
property in order for the result to `:ideographic`.

# `ideographic?`

Returns a boolean indicating if the
codepoint or string has the property
`:ideographic`.

For string parameters, all codepoints in
the string must have the `:ideographic`
property in order for the result to be `true`.

# `ids_binary_operator`

Returns `:ids_binary_operator` or `nil` indicating
if the codepoint or string has the property
`:ids_binary_operator`.

For string parameters, all codepoints in
the string must have the `:ids_binary_operator`
property in order for the result to `:ids_binary_operator`.

# `ids_binary_operator?`

Returns a boolean indicating if the
codepoint or string has the property
`:ids_binary_operator`.

For string parameters, all codepoints in
the string must have the `:ids_binary_operator`
property in order for the result to be `true`.

# `ids_trinary_operator`

Returns `:ids_trinary_operator` or `nil` indicating
if the codepoint or string has the property
`:ids_trinary_operator`.

For string parameters, all codepoints in
the string must have the `:ids_trinary_operator`
property in order for the result to `:ids_trinary_operator`.

# `ids_trinary_operator?`

Returns a boolean indicating if the
codepoint or string has the property
`:ids_trinary_operator`.

For string parameters, all codepoints in
the string must have the `:ids_trinary_operator`
property in order for the result to be `true`.

# `ids_unary_operator`

Returns `:ids_unary_operator` or `nil` indicating
if the codepoint or string has the property
`:ids_unary_operator`.

For string parameters, all codepoints in
the string must have the `:ids_unary_operator`
property in order for the result to `:ids_unary_operator`.

# `ids_unary_operator?`

Returns a boolean indicating if the
codepoint or string has the property
`:ids_unary_operator`.

For string parameters, all codepoints in
the string must have the `:ids_unary_operator`
property in order for the result to be `true`.

# `incb`

Returns `:incb` or `nil` indicating
if the codepoint or string has the property
`:incb`.

For string parameters, all codepoints in
the string must have the `:incb`
property in order for the result to `:incb`.

# `incb?`

Returns a boolean indicating if the
codepoint or string has the property
`:incb`.

For string parameters, all codepoints in
the string must have the `:incb`
property in order for the result to be `true`.

# `join_control`

Returns `:join_control` or `nil` indicating
if the codepoint or string has the property
`:join_control`.

For string parameters, all codepoints in
the string must have the `:join_control`
property in order for the result to `:join_control`.

# `join_control?`

Returns a boolean indicating if the
codepoint or string has the property
`:join_control`.

For string parameters, all codepoints in
the string must have the `:join_control`
property in order for the result to be `true`.

# `known_properties`

Returns a list of known Unicode
property names.

This function does not return the
names of any property aliases.

# `logical_order_exception`

Returns `:logical_order_exception` or `nil` indicating
if the codepoint or string has the property
`:logical_order_exception`.

For string parameters, all codepoints in
the string must have the `:logical_order_exception`
property in order for the result to `:logical_order_exception`.

# `logical_order_exception?`

Returns a boolean indicating if the
codepoint or string has the property
`:logical_order_exception`.

For string parameters, all codepoints in
the string must have the `:logical_order_exception`
property in order for the result to be `true`.

# `lowercase`

Returns `:lowercase` or `nil` indicating
if the codepoint or string has the property
`:lowercase`.

For string parameters, all codepoints in
the string must have the `:lowercase`
property in order for the result to `:lowercase`.

# `lowercase?`

Returns a boolean indicating if the
codepoint or string has the property
`:lowercase`.

For string parameters, all codepoints in
the string must have the `:lowercase`
property in order for the result to be `true`.

# `math`

Returns `:math` or `nil` indicating
if the codepoint or string has the property
`:math`.

For string parameters, all codepoints in
the string must have the `:math`
property in order for the result to `:math`.

# `math?`

Returns a boolean indicating if the
codepoint or string has the property
`:math`.

For string parameters, all codepoints in
the string must have the `:math`
property in order for the result to be `true`.

# `modifier_combining_mark`

Returns `:modifier_combining_mark` or `nil` indicating
if the codepoint or string has the property
`:modifier_combining_mark`.

For string parameters, all codepoints in
the string must have the `:modifier_combining_mark`
property in order for the result to `:modifier_combining_mark`.

# `modifier_combining_mark?`

Returns a boolean indicating if the
codepoint or string has the property
`:modifier_combining_mark`.

For string parameters, all codepoints in
the string must have the `:modifier_combining_mark`
property in order for the result to be `true`.

# `noncharacter_code_point`

Returns `:noncharacter_code_point` or `nil` indicating
if the codepoint or string has the property
`:noncharacter_code_point`.

For string parameters, all codepoints in
the string must have the `:noncharacter_code_point`
property in order for the result to `:noncharacter_code_point`.

# `noncharacter_code_point?`

Returns a boolean indicating if the
codepoint or string has the property
`:noncharacter_code_point`.

For string parameters, all codepoints in
the string must have the `:noncharacter_code_point`
property in order for the result to be `true`.

# `numeric`

Returns `:numeric` or `nil` based upon
whether the given codepoint or binary
is all numeric characters.

This is useful when the desired result is
`truthy` or `falsy`

## Example

    iex> Unicode.Property.numeric "123"
    :numeric
    iex> Unicode.Property.numeric "123a"
    nil

# `numeric?`

Returns a boolean based upon
whether the given codepoint or binary
is all numeric characters.

## Example

    iex> Unicode.Property.numeric? "123"
    true
    iex> Unicode.Property.numeric? "123a"
    false

# `other_alphabetic`

Returns `:other_alphabetic` or `nil` indicating
if the codepoint or string has the property
`:other_alphabetic`.

For string parameters, all codepoints in
the string must have the `:other_alphabetic`
property in order for the result to `:other_alphabetic`.

# `other_alphabetic?`

Returns a boolean indicating if the
codepoint or string has the property
`:other_alphabetic`.

For string parameters, all codepoints in
the string must have the `:other_alphabetic`
property in order for the result to be `true`.

# `other_default_ignorable_code_point`

Returns `:other_default_ignorable_code_point` or `nil` indicating
if the codepoint or string has the property
`:other_default_ignorable_code_point`.

For string parameters, all codepoints in
the string must have the `:other_default_ignorable_code_point`
property in order for the result to `:other_default_ignorable_code_point`.

# `other_default_ignorable_code_point?`

Returns a boolean indicating if the
codepoint or string has the property
`:other_default_ignorable_code_point`.

For string parameters, all codepoints in
the string must have the `:other_default_ignorable_code_point`
property in order for the result to be `true`.

# `other_grapheme_extend`

Returns `:other_grapheme_extend` or `nil` indicating
if the codepoint or string has the property
`:other_grapheme_extend`.

For string parameters, all codepoints in
the string must have the `:other_grapheme_extend`
property in order for the result to `:other_grapheme_extend`.

# `other_grapheme_extend?`

Returns a boolean indicating if the
codepoint or string has the property
`:other_grapheme_extend`.

For string parameters, all codepoints in
the string must have the `:other_grapheme_extend`
property in order for the result to be `true`.

# `other_id_continue`

Returns `:other_id_continue` or `nil` indicating
if the codepoint or string has the property
`:other_id_continue`.

For string parameters, all codepoints in
the string must have the `:other_id_continue`
property in order for the result to `:other_id_continue`.

# `other_id_continue?`

Returns a boolean indicating if the
codepoint or string has the property
`:other_id_continue`.

For string parameters, all codepoints in
the string must have the `:other_id_continue`
property in order for the result to be `true`.

# `other_id_start`

Returns `:other_id_start` or `nil` indicating
if the codepoint or string has the property
`:other_id_start`.

For string parameters, all codepoints in
the string must have the `:other_id_start`
property in order for the result to `:other_id_start`.

# `other_id_start?`

Returns a boolean indicating if the
codepoint or string has the property
`:other_id_start`.

For string parameters, all codepoints in
the string must have the `:other_id_start`
property in order for the result to be `true`.

# `other_lowercase`

Returns `:other_lowercase` or `nil` indicating
if the codepoint or string has the property
`:other_lowercase`.

For string parameters, all codepoints in
the string must have the `:other_lowercase`
property in order for the result to `:other_lowercase`.

# `other_lowercase?`

Returns a boolean indicating if the
codepoint or string has the property
`:other_lowercase`.

For string parameters, all codepoints in
the string must have the `:other_lowercase`
property in order for the result to be `true`.

# `other_math`

Returns `:other_math` or `nil` indicating
if the codepoint or string has the property
`:other_math`.

For string parameters, all codepoints in
the string must have the `:other_math`
property in order for the result to `:other_math`.

# `other_math?`

Returns a boolean indicating if the
codepoint or string has the property
`:other_math`.

For string parameters, all codepoints in
the string must have the `:other_math`
property in order for the result to be `true`.

# `other_uppercase`

Returns `:other_uppercase` or `nil` indicating
if the codepoint or string has the property
`:other_uppercase`.

For string parameters, all codepoints in
the string must have the `:other_uppercase`
property in order for the result to `:other_uppercase`.

# `other_uppercase?`

Returns a boolean indicating if the
codepoint or string has the property
`:other_uppercase`.

For string parameters, all codepoints in
the string must have the `:other_uppercase`
property in order for the result to be `true`.

# `pattern_syntax`

Returns `:pattern_syntax` or `nil` indicating
if the codepoint or string has the property
`:pattern_syntax`.

For string parameters, all codepoints in
the string must have the `:pattern_syntax`
property in order for the result to `:pattern_syntax`.

# `pattern_syntax?`

Returns a boolean indicating if the
codepoint or string has the property
`:pattern_syntax`.

For string parameters, all codepoints in
the string must have the `:pattern_syntax`
property in order for the result to be `true`.

# `pattern_white_space`

Returns `:pattern_white_space` or `nil` indicating
if the codepoint or string has the property
`:pattern_white_space`.

For string parameters, all codepoints in
the string must have the `:pattern_white_space`
property in order for the result to `:pattern_white_space`.

# `pattern_white_space?`

Returns a boolean indicating if the
codepoint or string has the property
`:pattern_white_space`.

For string parameters, all codepoints in
the string must have the `:pattern_white_space`
property in order for the result to be `true`.

# `prepended_concatenation_mark`

Returns `:prepended_concatenation_mark` or `nil` indicating
if the codepoint or string has the property
`:prepended_concatenation_mark`.

For string parameters, all codepoints in
the string must have the `:prepended_concatenation_mark`
property in order for the result to `:prepended_concatenation_mark`.

# `prepended_concatenation_mark?`

Returns a boolean indicating if the
codepoint or string has the property
`:prepended_concatenation_mark`.

For string parameters, all codepoints in
the string must have the `:prepended_concatenation_mark`
property in order for the result to be `true`.

# `properties`

Returns the map of Unicode
properties.

The property name is the map
key and a list of codepoint
ranges as tuples as the value.

# `properties`

```elixir
@spec properties(string_or_codepoint()) :: [atom(), ...] | [[atom(), ...], ...]
```

Returns the property name(s) for the
given binary or codepoint.

In the case of a codepoint, a single
list of properties for that codepoint name is returned.

For a binary a list of list for each
codepoint in the binary is returned.

# `quotation_mark`

Returns `:quotation_mark` or `nil` indicating
if the codepoint or string has the property
`:quotation_mark`.

For string parameters, all codepoints in
the string must have the `:quotation_mark`
property in order for the result to `:quotation_mark`.

# `quotation_mark?`

Returns a boolean indicating if the
codepoint or string has the property
`:quotation_mark`.

For string parameters, all codepoints in
the string must have the `:quotation_mark`
property in order for the result to be `true`.

# `radical`

Returns `:radical` or `nil` indicating
if the codepoint or string has the property
`:radical`.

For string parameters, all codepoints in
the string must have the `:radical`
property in order for the result to `:radical`.

# `radical?`

Returns a boolean indicating if the
codepoint or string has the property
`:radical`.

For string parameters, all codepoints in
the string must have the `:radical`
property in order for the result to be `true`.

# `regional_indicator`

Returns `:regional_indicator` or `nil` indicating
if the codepoint or string has the property
`:regional_indicator`.

For string parameters, all codepoints in
the string must have the `:regional_indicator`
property in order for the result to `:regional_indicator`.

# `regional_indicator?`

Returns a boolean indicating if the
codepoint or string has the property
`:regional_indicator`.

For string parameters, all codepoints in
the string must have the `:regional_indicator`
property in order for the result to be `true`.

# `sentence_terminal`

Returns `:sentence_terminal` or `nil` indicating
if the codepoint or string has the property
`:sentence_terminal`.

For string parameters, all codepoints in
the string must have the `:sentence_terminal`
property in order for the result to `:sentence_terminal`.

# `sentence_terminal?`

Returns a boolean indicating if the
codepoint or string has the property
`:sentence_terminal`.

For string parameters, all codepoints in
the string must have the `:sentence_terminal`
property in order for the result to be `true`.

# `servers`

Returns a map of properties to the module
that serves that property.

# `soft_dotted`

Returns `:soft_dotted` or `nil` indicating
if the codepoint or string has the property
`:soft_dotted`.

For string parameters, all codepoints in
the string must have the `:soft_dotted`
property in order for the result to `:soft_dotted`.

# `soft_dotted?`

Returns a boolean indicating if the
codepoint or string has the property
`:soft_dotted`.

For string parameters, all codepoints in
the string must have the `:soft_dotted`
property in order for the result to be `true`.

# `terminal_punctuation`

Returns `:terminal_punctuation` or `nil` indicating
if the codepoint or string has the property
`:terminal_punctuation`.

For string parameters, all codepoints in
the string must have the `:terminal_punctuation`
property in order for the result to `:terminal_punctuation`.

# `terminal_punctuation?`

Returns a boolean indicating if the
codepoint or string has the property
`:terminal_punctuation`.

For string parameters, all codepoints in
the string must have the `:terminal_punctuation`
property in order for the result to be `true`.

# `unified_ideograph`

Returns `:unified_ideograph` or `nil` indicating
if the codepoint or string has the property
`:unified_ideograph`.

For string parameters, all codepoints in
the string must have the `:unified_ideograph`
property in order for the result to `:unified_ideograph`.

# `unified_ideograph?`

Returns a boolean indicating if the
codepoint or string has the property
`:unified_ideograph`.

For string parameters, all codepoints in
the string must have the `:unified_ideograph`
property in order for the result to be `true`.

# `uppercase`

Returns `:uppercase` or `nil` indicating
if the codepoint or string has the property
`:uppercase`.

For string parameters, all codepoints in
the string must have the `:uppercase`
property in order for the result to `:uppercase`.

# `uppercase?`

Returns a boolean indicating if the
codepoint or string has the property
`:uppercase`.

For string parameters, all codepoints in
the string must have the `:uppercase`
property in order for the result to be `true`.

# `variation_selector`

Returns `:variation_selector` or `nil` indicating
if the codepoint or string has the property
`:variation_selector`.

For string parameters, all codepoints in
the string must have the `:variation_selector`
property in order for the result to `:variation_selector`.

# `variation_selector?`

Returns a boolean indicating if the
codepoint or string has the property
`:variation_selector`.

For string parameters, all codepoints in
the string must have the `:variation_selector`
property in order for the result to be `true`.

# `white_space`

Returns `:white_space` or `nil` indicating
if the codepoint or string has the property
`:white_space`.

For string parameters, all codepoints in
the string must have the `:white_space`
property in order for the result to `:white_space`.

# `white_space?`

Returns a boolean indicating if the
codepoint or string has the property
`:white_space`.

For string parameters, all codepoints in
the string must have the `:white_space`
property in order for the result to be `true`.

# `xid_continue`

Returns `:xid_continue` or `nil` indicating
if the codepoint or string has the property
`:xid_continue`.

For string parameters, all codepoints in
the string must have the `:xid_continue`
property in order for the result to `:xid_continue`.

# `xid_continue?`

Returns a boolean indicating if the
codepoint or string has the property
`:xid_continue`.

For string parameters, all codepoints in
the string must have the `:xid_continue`
property in order for the result to be `true`.

# `xid_start`

Returns `:xid_start` or `nil` indicating
if the codepoint or string has the property
`:xid_start`.

For string parameters, all codepoints in
the string must have the `:xid_start`
property in order for the result to `:xid_start`.

# `xid_start?`

Returns a boolean indicating if the
codepoint or string has the property
`:xid_start`.

For string parameters, all codepoints in
the string must have the `:xid_start`
property in order for the result to be `true`.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
