# $NetBSD: Makefile,v 1.3 2025/07/23 01:14:07 agc Exp $

.include <bsd.own.mk>

PROG=	agcre
SRCS+=	main.c
LDADD+=	-L${.CURDIR} -Wl,-R${.CURDIR} -lagcre
CPPFLAGS+=	-I${DIST}
MAN=	agcre.1
WARNS=	5

.sinclude "../namespace.mk"

DIST=	${.CURDIR}/../dist
.PATH: ${DIST}

LIB_AGCRE_DIR!= cd ${.CURDIR}/../lib && ${PRINTOBJDIR}
LDADD+=         -Wl,-R${LIB_AGCRE_DIR} -L${LIB_AGCRE_DIR} -lagcre
DPADD+=         ${LIB_AGCRE_DIR}/libagcre.a

TESTDIR=	${.CURDIR}/../dist/tests

PRODUCTION=1
.ifndef PRODUCTION
CPPFLAGS+=	-g -O0
LDFLAGS+=	-g -O0
.endif

BINDIR=	/usr/bin

.include <bsd.prog.mk>

t: ${PROG}
	@echo "1. basics"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} PROG ${TESTDIR}/1.in > 1.out
	diff ${TESTDIR}/1.expected 1.out
	rm -f 1.out
	@echo "2. zero width matching"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?a?aaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ${TESTDIR}/2.in > 2.out
	diff ${TESTDIR}/2.expected 2.out
	rm -f 2.out
	@echo "3. basics"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'PR.*G' ${TESTDIR}/1.in > 3.out
	diff ${TESTDIR}/3.expected 3.out
	rm -f 3.out
	@echo "4. basics"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'PR.*?G' ${TESTDIR}/1.in > 4.out
	diff ${TESTDIR}/4.expected 4.out
	rm -f 4.out
	@echo "5. basics"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'C.*?S' ${TESTDIR}/1.in > 5.out
	diff ${TESTDIR}/5.expected 5.out
	rm -f 5.out
	@echo "6. basics"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'CQ?.*?S' ${TESTDIR}/1.in > 6.out
	diff ${TESTDIR}/6.expected 6.out
	rm -f 6.out
	@echo "7. alternates"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'pr(o)*g' ${TESTDIR}/1.in > 7.out
	diff ${TESTDIR}/7.expected 7.out
	rm -f 7.out
	@echo "8. alternates"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'pr(i|o)*g' ${TESTDIR}/1.in > 8.out
	diff ${TESTDIR}/8.expected 8.out
	rm -f 8.out
	@echo "9. alternates"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'pr(e|i|o)*g' ${TESTDIR}/1.in > 9.out
	diff ${TESTDIR}/9.expected 9.out
	rm -f 9.out
	@echo "10. alternates"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'pr(a|e|i|o|u)*g' ${TESTDIR}/1.in > 10.out
	diff ${TESTDIR}/10.expected 10.out
	rm -f 10.out
	@echo "11. alternates"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'u?int(8|16|32|64)_t' ${TESTDIR}/3.in > 11.out
	diff ${TESTDIR}/11.expected 11.out
	rm -f 11.out
	@echo "12. alternates"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'u?int(8|16|32|64)*_t' ${TESTDIR}/3.in > 12.out
	diff ${TESTDIR}/12.expected 12.out
	rm -f 12.out
	@echo "13. alternates"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'u?int(8|16|32|64)*?_t' ${TESTDIR}/3.in > 13.out
	diff ${TESTDIR}/13.expected 13.out
	rm -f 13.out
	@echo "14. alternates"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'u?int(8|16|32|64)*?_t' ${TESTDIR}/3.in > 14.out
	diff ${TESTDIR}/14.expected 14.out
	rm -f 14.out
	@echo "15. alternates"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'u?int(8|16|32|64)+?_t' ${TESTDIR}/3.in > 15.out
	diff ${TESTDIR}/15.expected 15.out
	rm -f 15.out
	@echo "16. begin line"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '^PROG' ${TESTDIR}/1.in > 16.out
	diff ${TESTDIR}/16.expected 16.out
	rm -f 16.out
	@echo "17. end line"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '0$$' ${TESTDIR}/1.in > 17.out
	diff ${TESTDIR}/17.expected 17.out
	rm -f 17.out
	@echo "18. unicode"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\u0050\u0052\u004f\u0047' ${TESTDIR}/1.in > 18.out
	diff ${TESTDIR}/18.expected 18.out
	rm -f 18.out
	@echo "19. beg word"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i '\<(P|B)' ${TESTDIR}/1.in > 19.out
	diff ${TESTDIR}/19.expected 19.out
	rm -f 19.out
	@echo "20. end word"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '0\>' ${TESTDIR}/1.in > 20.out
	diff ${TESTDIR}/20.expected 20.out
	rm -f 20.out
	@echo "21. sets"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'PR[AEIOU]G' ${TESTDIR}/1.in > 21.out
	diff ${TESTDIR}/21.expected 21.out
	rm -f 21.out
	@echo "22. word boundaries"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i '\bP' ${TESTDIR}/1.in > 22.out
	diff ${TESTDIR}/22.expected 22.out
	rm -f 22.out
	@echo "23. word boundaries"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 's\b' ${TESTDIR}/1.in > 23.out
	diff ${TESTDIR}/23.expected 23.out
	rm -f 23.out
	@echo "24. ranges"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'PR[M-P]G' ${TESTDIR}/1.in > 24.out
	diff ${TESTDIR}/24.expected 24.out
	rm -f 24.out
	@echo "25. ranges"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'PR[^0-9]G' ${TESTDIR}/1.in > 25.out
	diff ${TESTDIR}/25.expected 25.out
	rm -f 25.out
	@echo "26. perl escapes"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'P\w\w\w' ${TESTDIR}/1.in > 26.out
	diff ${TESTDIR}/26.expected 26.out
	rm -f 26.out
	@echo "27. perl escapes"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'P\w\w\w\b' ${TESTDIR}/1.in > 27.out
	diff ${TESTDIR}/27.expected 27.out
	rm -f 27.out
	@echo "28. REG_PEND"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i -P 4 'PROGRAMMATIC INTERFACE FOR DUMMIES' ${TESTDIR}/1.in > 28.out
	diff ${TESTDIR}/28.expected 28.out
	rm -f 28.out
	@echo "29. {} repetition"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'CP{2}FLAGS' ${TESTDIR}/1.in > 29.out
	diff ${TESTDIR}/29.expected 29.out
	rm -f 29.out
	@echo "30. {} repetition"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'CP{2,5}FLAGS' ${TESTDIR}/1.in > 30.out
	diff ${TESTDIR}/30.expected 30.out
	rm -f 30.out
	@echo "31. {} repetition"
	-env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'CP{3,5}FLAGS' ${TESTDIR}/1.in > 31.out
	diff ${TESTDIR}/31.expected 31.out
	rm -f 31.out
	@echo "32. {} repetition"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'CP{1,2}FLAGS' ${TESTDIR}/1.in > 32.out
	diff ${TESTDIR}/32.expected 32.out
	rm -f 32.out
	@echo "33. {} repetition"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'C\w{2,5}GS' ${TESTDIR}/1.in > 33.out
	diff ${TESTDIR}/33.expected 33.out
	rm -f 33.out
	@echo "34. one-letter words"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\b\w\b' ${TESTDIR}/1.in > 34.out
	diff ${TESTDIR}/34.expected 34.out
	rm -f 34.out
	@echo "35. two-letter words"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\b\w{2}\b' ${TESTDIR}/1.in > 35.out
	diff ${TESTDIR}/35.expected 35.out
	rm -f 35.out
	@echo "36. {} repetition"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'C\w{2,5}GS' ${TESTDIR}/1.in > 36.out
	diff ${TESTDIR}/36.expected 36.out
	rm -f 36.out
	@echo "37. {} repetition"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'C\w{2,5}AGS' ${TESTDIR}/1.in > 37.out
	diff ${TESTDIR}/37.expected 37.out
	rm -f 37.out
	@echo "38. {} repetition"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'C\w{2,5}LAGS' ${TESTDIR}/1.in > 38.out
	diff ${TESTDIR}/38.expected 38.out
	rm -f 38.out
	@echo "39. {} repetition"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'C\w{2,5}FLAGS' ${TESTDIR}/1.in > 39.out
	diff ${TESTDIR}/39.expected 39.out
	rm -f 39.out
	@echo "40. -v"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -v 'PR[A-Z]G' ${TESTDIR}/1.in > 40.out
	diff ${TESTDIR}/40.expected 40.out
	rm -f 40.out
	@echo "41. error input"
	-env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'PR[A-Z' ${TESTDIR}/1.in > 41.out
	diff ${TESTDIR}/41.expected 41.out
	rm -f 41.out
	@echo "42. error input"
	-env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '(u_?)?int(8|16|32|64_t' ${TESTDIR}/1.in > 42.out
	diff ${TESTDIR}/42.expected 42.out
	rm -f 42.out
	@echo "43. alternates"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '(u_?)?int(8|16|32|64)+?_t' ${TESTDIR}/3.in > 43.out
	diff ${TESTDIR}/43.expected 43.out
	rm -f 43.out
	@echo "44. unicode sets"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\u0050\u0052[\u0051\u0052\u0053\u004f\u0050]\u0047' ${TESTDIR}/1.in > 44.out
	diff ${TESTDIR}/44.expected 44.out
	rm -f 44.out
	@echo "45. unicode sets"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i '\u0050\u0052[\u0051\u0052\u0053\u004f\u0050]\u0047' ${TESTDIR}/1.in > 45.out
	diff ${TESTDIR}/45.expected 45.out
	rm -f 45.out
	@echo "46. bugfix - last two alternates only recognised, not first n-2"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'pr(o|u|a|e|i)g' ${TESTDIR}/1.in > 46.out
	diff ${TESTDIR}/46.expected 46.out
	rm -f 46.out
	@echo "47. test program display"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -Di 'pr(o|u|a|e|i)g' ${TESTDIR}/1.in > 47.out
	diff ${TESTDIR}/47.expected 47.out
	rm -f 47.out
	@echo "48. sub-expressions"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -D -S 3 '(i(n(t\d*)))' ${TESTDIR}/3.in > 48.out
	diff ${TESTDIR}/48.expected 48.out
	rm -f 48.out
	@echo "49. sub-expressions"
	-env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -S 5 PROG ${TESTDIR}/1.in > 49.out
	diff ${TESTDIR}/49.expected 49.out
	rm -f 49.out
	@echo "50. sub-expressions"
	-env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -S 5 'P{1}ROG' ${TESTDIR}/1.in > 50.out
	diff ${TESTDIR}/50.expected 50.out
	rm -f 50.out
	@echo "51. tabs"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\t' ${TESTDIR}/1.in > 51.out
	diff ${TESTDIR}/51.expected 51.out
	rm -f 51.out
	@echo "52. basic regexps"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -T basic '+=' ${TESTDIR}/1.in > 52.out
	diff ${TESTDIR}/52.expected 52.out
	rm -f 52.out
	@echo "53. blank lines"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '^$$' ${TESTDIR}/1.in > 53.out
	diff ${TESTDIR}/53.expected 53.out
	rm -f 53.out
	@echo "54. recursive"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -rn __arraycount /usr/include > 54.out
	diff ${TESTDIR}/54.expected 54.out
	rm -f 54.out
	@echo "55. posix char sets"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\b[[:alnum:]]{4}\b' ${TESTDIR}/1.in > 55.out
	diff ${TESTDIR}/55.expected 55.out
	rm -f 55.out
	@echo "56. posix word delimiters"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '[[:<:]][[:alnum:]]{4}[[:>:]]' ${TESTDIR}/1.in > 56.out
	diff ${TESTDIR}/56.expected 56.out
	rm -f 56.out
	@echo "57. perl escapes again"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\s-' ${TESTDIR}/1.in > 57.out
	diff ${TESTDIR}/57.expected 57.out
	rm -f 57.out
	@echo "58. bad input"
	-env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'lsdhavcljsadhvcljsadhvcljhv(()*&^&&^*^%&^%&' ${TESTDIR}/1.in > 58.out
	diff ${TESTDIR}/58.expected 58.out
	rm -f 58.out
	@echo "59. bad input"
	echo abcdefg | env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '(a|bcdef|g|ab|c|d|e|efg|fg)*' > 59.out
	diff ${TESTDIR}/59.expected 59.out
	rm -f 59.out
	@echo "60. xdigit and complements"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\<[^[:xdigit:]]{4}' ${TESTDIR}/1.in > 60.out
	diff ${TESTDIR}/60.expected 60.out
	rm -f 60.out
	@echo "61. at least repeats"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'CP{1,}.*S' ${TESTDIR}/1.in > 61.out
	diff ${TESTDIR}/61.expected 61.out
	rm -f 61.out
	@echo "62. version number"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -V > 62.out
	diff ${TESTDIR}/62.expected 62.out
	rm -f 62.out
	@echo "63. 256 upper bound"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'CP{1,256}FLAGS' ${TESTDIR}/1.in > 63.out
	diff ${TESTDIR}/63.expected 63.out
	rm -f 63.out
	@echo "64. zero width matching"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '(a?){9999}aaaaaaaaaaaaaaaaaaaaaaaaaaaaa' ${TESTDIR}/2.in > 64.out
	diff ${TESTDIR}/64.expected 64.out
	rm -f 64.out
	@echo "65. palindromes"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '(.).\1' ${TESTDIR}/1.in > 65.out
	diff ${TESTDIR}/65.expected 65.out
	rm -f 65.out
	@echo "66. multi-char seqs repeated"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\<(\w{2}).\1\>' ${TESTDIR}/words > 66.out
	diff ${TESTDIR}/66.expected 66.out
	rm -f 66.out
	@echo "67. 5-letter palindromes"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\<(.)(.).\2\1\>' ${TESTDIR}/words > 67.out
	diff ${TESTDIR}/67.expected 67.out
	rm -f 67.out
	@echo "68. 6-letter palindromes"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\<(.)(.)(.)\3\2\1\>' ${TESTDIR}/words > 68.out
	diff ${TESTDIR}/68.expected 68.out
	rm -f 68.out
	@echo "69. 7-letter palindromes"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\<(.)(.)(.).\3\2\1\>' ${TESTDIR}/words > 69.out
	diff ${TESTDIR}/69.expected 69.out
	rm -f 69.out
	@echo "70. 8-letter palindromes in surrounding text"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '(.)(.)(.)(.)\4\3\2\1' ${TESTDIR}/words > 70.out
	diff ${TESTDIR}/70.expected 70.out
	rm -f 70.out
	@echo "71. 9-letter palindromes in surrounding text"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '(.)(.)(.)(.).\4\3\2\1' ${TESTDIR}/words > 71.out
	diff ${TESTDIR}/71.expected 71.out
	rm -f 71.out
	@echo "72. multi-char seqs repeated"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\<(\w{3}).\1\>' ${TESTDIR}/words > 72.out
	diff ${TESTDIR}/72.expected 72.out
	rm -f 72.out
	@echo "73. multi-char seqs repeated"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\<(\w{3})\1\>' ${TESTDIR}/words > 73.out
	diff ${TESTDIR}/73.expected 73.out
	rm -f 73.out
	@echo "74. nospec searching"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -T nospec '+=' ${TESTDIR}/1.in > 74.out
	diff ${TESTDIR}/74.expected 74.out
	rm -f 74.out
	@echo "75. UTF8 input file"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'STARG..TE' ${TESTDIR}/UTF-8-demo.txt > 75.out
	diff ${TESTDIR}/75.expected 75.out
	rm -f 75.out
	@echo "76. UTF8 input file"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} .A ${TESTDIR}/UTF-8-demo.txt > 76.out
	diff ${TESTDIR}/76.expected 76.out
	rm -f 76.out
	@echo "77. UTF8 input file"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} H. ${TESTDIR}/UTF-8-demo.txt > 77.out
	diff ${TESTDIR}/77.expected 77.out
	rm -f 77.out
	@echo "78. UTF8 input file"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'STARG.{2}TE' ${TESTDIR}/UTF-8-demo.txt > 78.out
	diff ${TESTDIR}/78.expected 78.out
	rm -f 78.out
	@echo "79. UTF8 input file"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'STARG.*TE' ${TESTDIR}/UTF-8-demo.txt > 79.out
	diff ${TESTDIR}/79.expected 79.out
	rm -f 79.out
	@echo "80. UTF8 input file"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'STARG.+TE' ${TESTDIR}/UTF-8-demo.txt > 80.out
	diff ${TESTDIR}/80.expected 80.out
	rm -f 80.out
	@echo "81. UTF8 input file"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -i 'starg.*?e\>' ${TESTDIR}/UTF-8-demo.txt > 81.out
	diff ${TESTDIR}/81.expected 81.out
	rm -f 81.out
	@echo "82. UTF8 expression and input file"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'Λ̊' ${TESTDIR}/UTF-8-demo.txt > 82.out
	diff ${TESTDIR}/82.expected 82.out
	rm -f 82.out
	@echo "83. UTF8 expression and input file"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -f ${TESTDIR}/expression ${TESTDIR}/UTF-8-demo.txt > 83.out
	diff ${TESTDIR}/83.expected 83.out
	rm -f 83.out
	@echo "84. 4 char words in utf8 file"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\<\S{4}\>' ${TESTDIR}/UTF-8-demo.txt > 84.out
	diff ${TESTDIR}/84.expected 84.out
	rm -f 84.out
	@echo "85. nospec searching"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -T nospec 'in' ${TESTDIR}/UTF-8-demo.txt > 85.out
	diff ${TESTDIR}/85.expected 85.out
	rm -f 85.out
	@echo "86. offsets"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -O -e PROG ${TESTDIR}/1.in > 86.out
	diff ${TESTDIR}/86.expected 86.out
	rm -f 86.out
	@echo "87. offsets"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} echo '/XXX' | ./${PROG} -OD '.*(/XXX).*' > 87.out
	diff ${TESTDIR}/87.expected 87.out
	rm -f 87.out
	@echo "88. zero repetition"
	echo abab | env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} -D 'a?(ac{0}b|ba)ab' > 88.out
	diff ${TESTDIR}/88.expected 88.out
	rm -f 88.out
	@echo "89. zero width instruction gens"
	echo vivi | env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '^.+$$' > 89.out
	diff ${TESTDIR}/89.expected 89.out
	rm -f 89.out
	@echo "90. multiple sets"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '[P][R][O][G]' ${TESTDIR}/1.in > 90.out
	diff ${TESTDIR}/90.expected 90.out
	rm -f 90.out
	@echo "91. icase directive"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} 'PR(?i)o(?-i)G' ${TESTDIR}/1.in > 91.out
	diff ${TESTDIR}/91.expected 91.out
	rm -f 91.out
	@echo "92. icase directive"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '(?i)prog(?-i)' ${TESTDIR}/1.in > 92.out
	diff ${TESTDIR}/92.expected 92.out
	rm -f 92.out
	@echo "93. word matching"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\w+' ${TESTDIR}/UTF-8-demo.txt > 93.out
	diff ${TESTDIR}/93.expected 93.out
	rm -f 93.out
	@echo "94. word matching with begword and endword"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\<\w+\>' ${TESTDIR}/UTF-8-demo.txt > 94.out
	diff ${TESTDIR}/94.expected 94.out
	rm -f 94.out
	@echo "95. unicode with backslash x escapes"
	env LD_LIBRARY_PATH=${LIB_AGCRE_DIR} ./${PROG} '\x0050\x0052\x004f\x0047' ${TESTDIR}/1.in > 95.out
	diff ${TESTDIR}/18.expected 95.out
	rm -f 95.out
