# line-range-format

*\<start\>* and *\<end\>* can take one of these forms:

- *\<number\>*

  If *\<start\>* or *\<end\>* is a number, it specifies an absolute line number (lines count from 1).

<!-- -->

- `/<regex>/`

  This form will use the first line matching the given POSIX *\<regex\>*. If *\<start\>* is a regex, it will search from the end of the previous `-L` range, if any, otherwise from the start of file. If *\<start\>* is `^/<regex>/`, it will search from the start of file. If *\<end\>* is a regex, it will search starting at the line given by *\<start\>*.

<!-- -->

- `+<offset>` or `-<offset>`

  This is only valid for *\<end\>* and will specify a number of lines before or after the line given by *\<start\>*.

\
If `:<funcname>` is given in place of *\<start\>* and *\<end\>*, it is a regular expression that denotes the range from the first funcname line that matches *\<funcname\>*, up to the next funcname line. `:<funcname>` searches from the end of the previous `-L` range, if any, otherwise from the start of file. `^:<funcname>` searches from the start of file. The function names are determined in the same way as `git` `diff` works out patch hunk headers (see ’Defining a custom hunk-header’ in linkgit:gitattributes\[5\]).