---
page_title: lower - Functions - Configuration Language
description: >-
  The lower function converts all cased letters in the given string to
  lowercase.
---

# `lower` Function

`lower` converts all cased letters in the given string to lowercase.

## Examples

```
> lower("HELLO")
hello
> lower("АЛЛО!")
алло!
```

This function uses Unicode's definition of letters and of upper- and lowercase.

## Related Functions

* [`upper`](/language/functions/upper) converts letters in a string to _uppercase_.
* [`title`](/language/functions/title) converts the first letter of each word in a string to uppercase.
