<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _make_cron_re():
 """ Make the regular expression that matches a crontab 'cron' line. Each field has a set of allowed values, and can then be in a range, and be listed with dashes. A range can be stepped with the '/' modifier, and ranges can be in a list. A field can also be '*', or '*' divided in steps. The best way to do this is to have a template for a single field that encapsulates the syntax of that field, regardless of what that field matches. We then fill in the actual template's value with the pattern that matches that field. Each field is named, so we can pull them out as a dictionary later. """

    range_ = r"{val}(?:-{val}(?:/\d+)?)?"
    template = r"(?P<{name}>" + "(?:\*(?:/\d+)?|{r}(?:,{r})*)".format(r=range_) + ")\s+"
    return (
        r'^\s*' +
        template.format(name='minute', val=r'(?:\d|[012345]\d)') +
        template.format(name='hour', val=r'(?:\d|[01]\d|2[0123])') +
        template.format(name='day_of_month', val=r'(?:0?[1-9]|[12]\d|3[01])') +
        template.format(name='month', val=r'(?:0?[1-9]|1[012]|jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)') +
        template.format(name='day_of_week', val=r'(?:[0-7]|mon|tue|wed|thur|fri|sat|sun)') +
        r'(?P<command>\S.*)$'
    )