Directives are extension blocks that provides certain functionality into document. A distinctive difference with roles is that the latter are in-line definitions.
RST document with directive:
.. directivename:: optional argument
:option1: opt value1
:option2:
content
Regular expression: a specific textual syntax used to match with the string. Powerful but somewhat complicated.
In-line extensions. Usually used for defining part of the content:
Some text containing :rolename:`target-name` as well as
other kind of :rolename:`targets <target-name>`
Copy the :file:`app.conf` to :directory:`/etc/`